VBA Convertir cadena de texto en número

Es posible que deba convertir los números almacenados como texto en números reales en su código VBA. En este tutorial, vamos a repasar las funciones que necesita usar para convertir una cadena a un tipo de datos entero, largo, doble, decimal o de moneda (Haga clic aquí para aprender a convertir números en cadenas)

Convertir cadena en entero

Puede utilizar la función CInt o CLng para convertir una cadena en un número entero. Si la fracción es menor que .5 la función se redondeará hacia abajo, si la fracción es mayor o igual que .5 la función se redondeará hacia arriba. El siguiente código convertirá una cadena en un número entero:

1 MsgBox CInt ("7.55")

El resultado es:

El siguiente código usa la función CLng para convertir una cadena en un número entero:

1 MsgBox CLng ("13,5")

El resultado es:

Nota: Puede utilizar la función CInt o CLng para convertir una cadena en un tipo de datos entero o largo (respectivamente). El tipo de datos largos es el mismo que un tipo de datos enteros, excepto que se permiten números más grandes. En el pasado, la distinción era necesaria debido a limitaciones de memoria. En la programación moderna, no hay razón para no utilizar el tipo de datos largos, ya que la memoria ya no es un problema. Por lo tanto, siempre es mejor usar un tipo de datos largo en lugar de un número entero.

Puede usar la ventana Inmediato para ver cómo se procesará el valor si no se convierte en un número entero:

1 Debug.Print "13.5" + "13.5"


Por lo general, el texto se almacenará como una variable y esta variable deberá convertirse a un tipo de datos numérico como se muestra en el siguiente código:

1234567 Sub Using_Variables ()Valor de atenuación Uno como cadenavalueOne = 5MsgBox CLng (valueOne) + CLng (valueOne)End Sub

Convertir cadena en decimal

Puede utilizar la función CDbl o CDec para convertir una cadena en decimal. El siguiente código convertiría una cadena en un tipo de datos doble:

1 MsgBox CDbl ("9.1819")

El resultado es:

El siguiente código convertiría una cadena en un tipo de datos decimal:

1 MsgBox CDec ("13.57") + CDec ("13.4")

El resultado es:

Puede usar la ventana Inmediato para ver cómo se procesará el valor si no se convierte a un tipo de datos doble o decimal:

1 Debug.Print "13.57" + "13.4"

El resultado es:

Nota: El tipo de datos decimal puede almacenar números más grandes que el tipo de datos doble, por lo que siempre es recomendable utilizar el tipo de datos decimal cuando no esté seguro.

Convertir cadena en moneda

Puede utilizar la función CCur para convertir una cadena en una moneda. El siguiente código convertiría una cadena en un tipo de datos de moneda:

1 Rango ("A1"). Valor = CCur ("18,5")

El resultado es:

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave