VBA doble

Tipo de datos doble de Excel VBA

VBA Double es un tipo de tipo de datos que asignamos para declarar variables, que es una versión mejorada o más larga de la variable de tipo de datos "Single" y generalmente se usa para almacenar lugares decimales más largos.

El tipo de datos VBA Integer siempre convierte los valores decimales al valor entero más cercano, el tipo de datos único puede mostrar hasta dos dígitos de posiciones decimales. Por otro lado, el tipo de datos "Doble" puede almacenar valores de -1,79769313486231E308 a -4,94065645841247E324 para valores negativos y para números positivos puede almacenar valores de 4,94065645841247E-324 a 1,79769313486232E308 .

Más importante aún, consume 8 bytes de memoria.

Ejemplos para usar el tipo de datos doble de VBA

Puede descargar esta plantilla de Excel doble de VBA aquí - Plantilla de Excel doble de VBA

Ejemplo 1

Antes de ver el ejemplo del tipo de datos "Doble", veamos los códigos de ejemplo de los tipos de datos "Integer" y "Single" en VBA. Mira el código VBA a continuación.

Código:

 Sub Integer_Ex () Dim k As Integer k = 2.569999947164 MsgBox k End Sub 

He declarado la variable "k" como Integer y para esta variable, he asignado el valor como 2.569999947164.

Ejecutemos este código manualmente o usando la tecla de acceso directo de Excel F5, para ver el valor final en el cuadro de mensaje en VBA.

El resultado se muestra como 3 en lugar del número proporcionado de 2,569999947164. La razón es que VBA ha convertido el número al valor entero más cercano, es decir, 3.

Cuando el valor decimal sea superior a 0,5, se convertirá al siguiente valor entero y cuando el valor decimal sea inferior a 0,51, se convertirá al valor entero inferior.

Ahora cambiaré el tipo de datos de Integer a Single.

Código:

 Sub Integer_Ex () Dim k As Single k = 2.569999947164 MsgBox k End Sub 

Ejecute el código a través de la tecla de método abreviado F5 y vea qué número obtenemos esta vez.

Esta vez obtuvimos el resultado como 2.57, así que esta vez obtuvimos dos lugares decimales. El valor original que le hemos asignado fue 2.569999947164, por lo que en este caso, tercero, el valor decimal colocado es 9, por lo que como este es más de 5, ha convertido el segundo valor decimal de 6 a 7.

Ahora cambie el tipo de datos de Single a Double.

Código:

 Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub 

Ahora ejecute el código manualmente y vea cuántos dígitos obtenemos en el resultado del cuadro de mensaje.

Esta vez obtuve todos los valores decimales. Podemos suministrar hasta 14 dígitos de posiciones decimales en el tipo de datos Double.

Si proporciona cualquier valor superior a 14, la posición decimal se convertirá al valor más cercano. Para ver un ejemplo, mire la imagen de abajo.

He escrito 15 lugares decimales en lugar de 14, si presiono la tecla Intro, volverá a tener solo 14 dígitos.

En lugar de 59 (dos últimos dígitos), obtuvimos 6, es decir, ya que el último dígito es 9, que es mayor que 5, el número 5 anterior se convierte al siguiente valor entero, es decir, 6

Ejemplo # 2

Ahora mostraré cómo trabajar con la referencia de celda en una hoja de trabajo. A continuación se muestran los números que ingresé en la hoja de trabajo.

Comencemos a capturar los mismos valores para el siguiente utilizando el tipo de datos INTEGER , el tipo de datos SINGLE y el tipo DOUBLE .

A continuación se muestra el código para retener los valores de la columna A a B mediante el tipo de datos INTEGER.

Código:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 to 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Ejecutemos el código mediante la tecla de método abreviado F5, para ver qué valores obtenemos en la columna B.

Cuando usamos Integer como tipo de datos, obtuvimos todos los números enteros, es decir, sin decimales.

Ahora solo cambiaré el tipo de datos vba de una variable de entero a único.

Código:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 to 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Este código dará el siguiente resultado.

Esta vez solo obtuvimos dos lugares decimales.

Ahora cambia el tipo de datos de simple a doble.

Código:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Double For k = 1 to 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Esto devolverá el siguiente resultado.

Tenemos valores exactos de la columna A.

Cosas para recordar

  • Double es un tipo de datos mejorado del tipo de datos Single.
  • Puede contener hasta 14 lugares decimales.
  • Consume 8 bytes de memoria del sistema.