VBA Convertir Cadena de Texto a Número
In this Article
Es posible que tenga que convertir números almacenados como texto en números reales en su código VBA. En este tutorial, vamos a repasar las funciones que debe utilizar para convertir una cadena en un tipo de datos entero, largo, doble, decimal o monetario(Haga clic aquí para aprender a convertir números en cadenas)
Convertir una cadena en un entero
Puedes utilizar la función CInt o CLng para convertir una cadena en un entero. Si la fracción es menor a .5 la función redondeará hacia abajo, si la fracción es mayor o igual a .5 la función redondeará hacia arriba. El siguiente código convertirá una cadena en un entero:
MsgBox CInt("7.55")
El resultado es:
El siguiente código utiliza la función CLng para convertir una cadena en un entero:
MsgBox CLng("13.5")
El resultado es:
Nota: Puede utilizar la función CInt o CLng para convertir una cadena a un tipo de datos entero o largo (respectivamente). El tipo de datos largo (Long) es el mismo que un tipo de datos entero (Integer), excepto que se permiten números más grandes. En el pasado, la distinción era necesaria debido a las restricciones de memoria. En la programación moderna, no hay razón para no utilizar el tipo de datos Long, ya que la memoria ya no es un problema. Así que siempre es mejor utilizar un tipo de datos Long en lugar de un Integer.
Puede utilizar la Ventana Inmediata para ver cómo se procesaría el valor si no se convirtiera en un entero:
Debug.Print "13.5" + "13.5"
Usualmente, el texto será almacenado como una variable y esta variable necesitará ser convertida a un tipo de dato numérico como se muestra en el código siguiente:
Sub Usando_Variables()
Dim valorUno As String
valorUno = 5
MsgBox CLng(valorUno) + CLng(valorUno)
End Sub
Convertir Cadena a Decimal
Puede utilizar la función CDbl o CDec para convertir una cadena en un decimal. El siguiente código convertiría una cadena a un tipo de datos doble:
MsgBox CDbl("9.1819")
El resultado es:
El siguiente código convertiría una cadena a un tipo de dato decimal:
MsgBox CDec("13.57") + CDec("13.4")
El resultado es:
Puede utilizar la Ventana Inmediata para ver cómo se procesaría el valor si no se convirtiera a un tipo de dato doble o decimal:
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 double, por lo que siempre es aconsejable utilizar el tipo de datos decimal cuando no estés seguro.
Convertir una cadena en moneda
Puede utilizar la función CCur para convertir una cadena en una moneda. El siguiente código convertiría una cadena a un tipo de dato de moneda:
Range("A1").Valor = CCur("18.5")
El resultado es:
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!