Cadena VBA a entero: use la función CINT para la conversión de datos

Tabla de contenido

Cadena de Excel VBA a entero

String y Integer son tipos de datos comunes, pero a menudo, como parte de nuestro análisis de datos, es posible que deseemos convertir la variable de tipo de datos de cadena a un tipo de datos entero y esto es posible mediante el uso de la función "CINT" en VBA.

Sintaxis de la función CINT

“CINT” se clasifica como una función de conversión de tipo de datos. Esta función convierte la expresión proporcionada en un tipo de datos Integer. Cuando digo "Expresión", debe ser un valor numérico que esté en el rango del tipo de datos Integer en VBA, es decir, entre -32768 y 32767.

Ahora, observe la sintaxis de la función CINT en VBA.

  • La expresión es el valor o la variable que contiene el valor que se convertirá a tipo de datos entero.
Nota 1: Justo cuando pase el valor de la expresión debe estar entre -32768 y 32767. De lo contrario, conducirá a un "Error de flujo excesivo", es decir, asignar el valor que está por encima del límite del tipo de datos. Nota 2: La expresión debe ser un valor numérico. Si la expresión es un valor de cadena o un valor de texto, provocará un "Error de tiempo de ejecución 13: No coinciden los tipos".

En este artículo, le mostraremos acerca de la conversión de tipos de datos enteros de una cadena a un entero usando la función "CINT".

Ejemplos de función CINT en VBA

Ejemplo 1

Realicemos el primer ejemplo de conversión de un número de fracción a tipo de datos entero.

Código:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • En el código anterior para la variable "IntegerNumber", he asignado el valor como "2564.589".
  • En la siguiente línea, apliqué una función CINT. Por lo tanto, convertirá el valor proporcionado al número entero más cercano.

Entonces, obtuvimos el resultado: 2565, y el número proporcionado es 2564.589. Cuando el valor decimal es superior a 0,5, las funciones CINT redondean el número al siguiente número entero. Cuando el valor decimal es menor o igual a 0.5, las funciones CINT redondean hacia abajo al mismo número entero.

Para ver un ejemplo, mire el código a continuación donde el número es menor que 0.5

Código:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564 - 0.5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Esto debería dar como resultado 2564, no 2565.

Ejemplo # 2

Ahora intentaré asignar el número que sea mayor que el límite del tipo de datos Integer.

Código:

Sub CINT_Example2 () Dim IntegerNumber como cadena Dim IntegerResult como entero IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

He asignado el número como "IntegerNumber = 51456.785" que es más que el límite del límite del tipo de datos Integer. Ahora, si intento ejecutar el código, arrojará un error de desbordamiento en VBA.

Siempre que el número proporcionado sea mayor que el tipo de datos Integer, muestre el cuadro de mensaje simple que dice "El número es mayor que el límite del tipo de datos Integer".

Código:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 En caso de error Mensaje GoTo: IntegerResult = CInt (IntegerNumber) Mensaje: Si Err.Number = 6 Then MsgBox IntegerNumber & "es mayor que el límite del tipo de datos entero" End Sub

Esto mostrará un mensaje como el siguiente siempre que el número proporcionado esté fuera del rango del tipo de datos Integer.

Ejemplo # 3

Ahora intentaré asignar el valor que no es numérico.

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hola" IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

He asignado el valor como "Hola", que no es numérico. Esto causa "Error de no coincidencia de tipo".

En lugar de mostrar el error de esta manera, coloquemos un cuadro de mensaje de información simple frente al usuario. El siguiente código colocará el cuadro de mensaje que dice "El valor de expresión proporcionado no es numérico, por lo que no se puede convertir".

Código:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" On Error GoTo Mensaje: IntegerResult = CInt (IntegerNumber) Mensaje: Si Err.Number = 13 Then MsgBox IntegerNumber & ": El valor de expresión proporcionado no es numérico , Por lo que no se puede convertir "End Sub

Esto mostrará el cuadro de mensaje a continuación.

Cosas para recordar

  • CINT convierte el valor de otro tipo de datos en un tipo de datos entero.
  • El número entero puede contener valores de -32768 a 32767, cualquier cosa por encima de estos números provocará un error de desbordamiento.
  • Solo el tipo de datos de cadena contiene datos numéricos que se convertirán a un tipo de datos entero.

Artículos recomendados

Esta ha sido una guía para VBA String to Integer. Aquí discutimos ejemplos de cadena a entero en Excel VBA usando la función CINT junto con ejemplos prácticos y plantilla de Excel descargable. A continuación se muestran algunos artículos útiles relacionados con VBA:

  • VBA dividir cadena en matriz
  • Cadena VBA hasta la fecha
  • Comparación de cadenas de VBA
  • VBA Reemplazar cadena

Articulos interesantes...