Tipo de datos largo de VBA (variable de atenuación)

Tipo variable larga

El VBA Largo El tipo de datos se utiliza para almacenar valores de datos muy largos (-2,147,483,648 a 2,147,483,648). Solo puede almacenar números enteros (sin decimales).

Para declarar una variable Long, usa la Declaración Dim (abreviatura de Dimensión):

1 Dim lngA tan largo

Luego, para asignar un valor a una variable, simplemente use el signo igual:

1 lngA = 30000

Poner esto en un procedimiento se ve así:

12345678 Sub lngExample ()'declarar la variable largaDim lngA tan largo'rellenar la variable largalngA = 30000'mostrar el cuadro de mensajeMsgBox lngAEnd Sub

Si ejecuta el código anterior, se mostrará el siguiente cuadro de mensaje.

Tipo de datos LongLong

El tipo de datos LongLong solo está disponible en la versión de 64 bits de Microsoft Office. Si está ejecutando una versión de 32 bits de Office en una máquina de 64 bits, este tipo de datos no estará disponible. Admite números en el rango de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.

1 Dim lngA como LongLong

Tipo de datos LongPtr

LongPtr se introdujo en VBA para admitir la versión de 64 bits de Microsoft Office. En un sistema de 32 bits, se trata como Long y en sistemas de 64 bits se trata como LongLong.

1 Dim lngA como LongPtr

Nota: LongPtr no está disponible en Excel 2007 o versiones anteriores.

Valores decimales y tipos de datos largos

Las variables largas no pueden almacenar valores decimales. Si pasa un número decimal largo, el número decimal se redondeará para eliminar el decimal.

Por lo tanto, si tuviera que ejecutar el procedimiento siguiente:

12345678 Sub LngExampleB ()'declarar la variable largaDim lngA tan largo'rellenar la variable largalngA = 3524,12'mostrar el cuadro de mensajeMsgBox lngAEnd Sub

El valor decimal se redondearía hacia abajo, devolviendo el siguiente mensaje:

Sin embargo, este código a continuación:

12345678 Sub LngExampleB ()'declarar la variable largaDim lngA tan largo'rellenar la variable largalngA = 3524,12'mostrar el cuadro de mensajeMsgBox lngAEnd Sub

Devolvería el siguiente cuadro de mensaje (redondeando hacia arriba):

Tipo de datos decimal / doble

Si desea almacenar un lugar decimal, deberá declarar una variable que permita lugares decimales. Hay 3 tipos de datos que puede usar: simple, doble o moneda.

1 Dim sngPrice como sencillo
1 Dim dblPrice as Double
1 Dim curPrice como moneda

El tipo de datos Único redondeará el punto decimal de forma ligeramente diferente al tipo de datos doble y moneda, por lo que es preferible usar doble a simple para mayor precisión. Un doble puede tener hasta 12 lugares decimales, mientras que Moneda y Único pueden tener hasta 4 lugares decimales.

Declarar variable larga a nivel de módulo o global

En los ejemplos anteriores, declaramos la variable Long dentro de un procedimiento. Las variables declaradas con un procedimiento solo se pueden usar dentro de ese procedimiento.

En su lugar, puede declarar variables Long a nivel de módulo o global.

Nivel de módulo

Nivel de módulo Las variables se declaran en la parte superior de los módulos de código con la Oscuro declaración.

Estas variables se pueden usar con cualquier procedimiento en ese módulo de código.

Nivel global

Nivel global las variables también se declaran en la parte superior de los módulos de código. Sin embargo, en lugar de utilizar el Oscuro declaración, use el Público declaración para indicar que la variable larga está disponible para ser utilizada en todo su proyecto VBA.

1 LngA público tan largo

Si declarara la variable larga a nivel de módulo y luego intentara usarla en un módulo diferente, se produciría un error.

Sin embargo, si hubiera utilizado la palabra clave Public para declarar la variable larga, no se produciría el error y el procedimiento se ejecutaría perfectamente.

Formatear almacenado largo como cadena

Puede haber un momento en el que desee formatear un tipo de datos largo en una cadena, por ejemplo, una fecha o tal vez desee mostrar un símbolo de moneda.

Para lograr esto, usa la función Formato.

El siguiente procedimiento:

1234567891011 Sub TestLongToString ()'declarar la variable de cadenaDim strDate como cadena'declare el largo y complete el valorDim lngDate tan largolngDate = 44055'convierte el largo en una cadena formateada como una fechastrDate = Formato (lngDate, "dd mmmm aaaa")'ver el resultadoDebug.Print strDateEnd Sub

devolvería el resultado a continuación:

y el siguiente procedimiento

1234567891011 Sub TestLongtoCurrencyString ()'declarar la variable de cadenaDim str Dinero como cadena'declare el largo y complete el valorDim lngValue tan largolngValue = 44055'convierte el largo en una cadena con un símbolo de monedastrMoney = Formato (lngValue, "$ #, ## 0")'ver el resultadoMsgBox strMoneyEnd Sub

devolvería este resultado:

wave wave wave wave wave