VBA Convertir Cadena de Texto a Número

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 18, 2022

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:

Uso de la función CInt en VBA

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

MsgBox CLng("13.5")

El resultado es:

Uso de la función CLng en VBA

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"

Uso de la ventana inmediata

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:

Conversión de una cadena a un tipo Doble en VBA

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

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

El resultado es:

Conversión de una cadena a un tipo decimal en VBA

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:

Uso de Debug.Print para mostrar valores

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:

Conversión de una cadena al tipo de datos de moneda

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! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples