VBA largo

¿Qué es un tipo de datos largo en VBA?

Long es un tipo de datos en VBA que se usa para almacenar los valores numéricos, sabemos que el número entero también contiene valores numéricos, pero Long es diferente de los enteros ya que el rango para el almacenamiento de datos es muy grande en el caso del tipo de datos largo también tipo de datos también podemos contener valores decimales, este es un tipo de datos incorporado.

"Largo" como dice el nombre, debe tener el valor de algo grande. "Long" es un tipo de datos numéricos en VBA Excel.

El tipo de datos largo en Excel VBA puede contener los valores de 0 a 2, 147, 483, 647 para números positivos, y para el número negativo puede contener de 0 a -2, 147, 483, 648.

El tipo de datos VBA Long requiere 4 bytes de almacenamiento de memoria de su computadora, esta es la memoria variable de tipo de datos de doble entero (2 bytes) y la mitad de la memoria variable de tipo de datos doble (8 bytes)

Nunca he visto un escenario en el que quiera utilizar completamente el límite de un tipo de datos VBA Long en mi corta carrera. Pero te mostraré algunos de los ejemplos para entenderlo mejor.

Ejemplos de tipos de datos largos de VBA

A continuación se muestran los ejemplos del tipo de datos Excel VBA Long.

Puede descargar esta plantilla de Excel de tipo de datos largos de VBA aquí - Plantilla de Excel de tipo de datos largos de VBA

Ejemplo largo # 1 de VBA

Tan pronto como declare el tipo de datos de la variable como "Long", puede asignar los valores de -2, 147, 483, 648 a 2, 147, 483, 648.

Por ejemplo, declare la variable como tipo de datos largo.

Código:

 Sub Long_Example1 () Dim k As Long End Sub 

Asignemos el valor como un recuento total de filas de la hoja de trabajo.

Para obtener el recuento total de filas en el código de la hoja de cálculo de Excel es “Filas. Contar"

Código:

 Sub Long_Example1 () Dim k As Long k = Rows.Count End Sub 

Ahora muestre el valor en el cuadro de mensaje.

Código:

 Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub 

Ejecute este código y vea cuál es el recuento total de filas en la hoja de trabajo.

Dice que tenemos más de 1 millón de filas en la hoja de trabajo.

Ahora, para una mejor comprensión, cambiaré el tipo de datos de LONG a INTEGER.

Código:

 Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub 

Si ejecuto el código VBA, obtendré el mensaje de error como "Desbordamiento".

La razón por la que obtuvimos este error en VBA es que el tipo de datos "Integer" solo puede contener los valores de -31768 a 32767. En este caso “Filas. Count ”devolverá el número que es mayor que el límite de la variable“ integer ”.

Asignar el valor de más de 1 millón a la variable que solo puede contener 32767 provoca el error de desbordamiento aquí.

Ejemplo largo n. ° 2 de VBA

Encuentre la última fila usando una variable larga

Encontrar la última fila utilizada de la hoja de trabajo es lo más importante de la codificación. Para encontrar la última fila utilizada de la hoja de trabajo, es necesario declarar la variable. Aunque declarar la variable y asignar un tipo de datos requiere algo de sentido común.

Suponga que los datos terminan en 25000 filas, como se muestra en la imagen de abajo.

Ahora sé que el último número de fila usado es 25000, para esto, no necesitamos el tipo de datos "LONG" porque el tipo de datos "INTEGER" puede darme la última fila.

Mire el código a continuación para obtener información.

Código:

 Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox k End Sub 

Si ejecuto este código, obtendré el último número de fila usado de la hoja de trabajo en la que estoy trabajando en este momento.

Como programador, es importante conocer el tamaño de los datos que tendrá en el futuro. Porque en este momento los datos pueden terminar en la fila 25000, pero si los datos aumentan más allá del límite de "Entero", es decir, 32767, se produce un error de desbordamiento.

Por ejemplo, aumentaré los datos a 32768 filas.

Ahora, si ejecuto el mismo código nuevamente, no obtendré el valor, sino el error que se muestra a continuación.

Recuerde que he aumentado el límite en solo 1 más allá del límite del valor "Entero", por lo que recibí un error de desbordamiento.

Por eso es importante conocer el tamaño de sus datos antes de asignar un tipo de datos a la variable. Siempre es una mejor opción declarar la variable como “LARGA” sin pensar en el tamaño de sus datos en el futuro.

Alternativas a Excel VBA Long Variable

Ya debe estar pensando en qué pasa si queremos mantener el valor por encima del límite de una variable larga. Para esto, necesitamos usar diferentes tipos de datos, es decir, VBA "Cadena" o "Variante"

Recuerde que en el momento en que cruza el número 2147483647 obtendremos un error de desbordamiento en VBA con el tipo de datos LONG. Para almacenar más de este número, necesitamos usar el tipo de datos "Cadena" o "Variante".

Para cadena

Código:

 Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub 

Para variante

Código:

 Sub Long_Example2 () Dim k As Variant k = 2147483648 MsgBox k End Sub 

Cuando ejecutamos los códigos anteriores, mostrará el número mencionado.