Este tutorial demostrará cómo usar la función CInt VBA para convertir una expresión al tipo de datos entero.
Función CInt
VBA CInt Convertir expresión en entero
La función VBA CInt se puede utilizar para convertir expresiones a tipos de datos enteros dentro del código VBA. El número resultante se redondea para convertirse en un número entero.
123456 | Sub CIntExample_1 ()MsgBox CInt (12.34) 'El resultado es: 12MsgBox CInt (12.345) 'El resultado es: 12MsgBox CInt (-124) 'El resultado es: -124MsgBox CInt (-12.34) 'El resultado es: -12End Sub |
Redondeo de CInt de VBA
La función VBA CInt redondeará la parte decimal de un tipo de número o una expresión similar a un número. Sin embargo, no se redondea correctamente en todos los casos. Cuando la parte decimal es 0.5, la función VBA CInt devuelve el entero par más cercano.
12345678910111213141516 | Sub CIntExample_2 ()CInt de MsgBox (0,34)'El resultado es: 0MsgBox CInt (0,99)'El resultado es: 1MsgBox CInt (-124,95)El resultado es: -125MsgBox CInt (1.5)'El resultado es: 2CInt de MsgBox (2.5)'El resultado es: 2End Sub |
Podemos agregar un número decimal relativamente pequeño a nuestro valor decimal esperado para cambiar el comportamiento de la función VBA Cint al esperado.
1234567891011 | Sub CIntExample_3 ()CInt de MsgBox (2.5)'El resultado es: 2MsgBox CInt (2.5 + 0.001)'El resultado es: 3CInt de MsgBox (14,5)El resultado es: 14MsgBox CInt (14,5 + 0,001)El resultado es: 15End Sub |
Programación VBA | ¡Code Generator funciona para usted!
VBA CInt Conversión de cadenas a enteros
La función VBA CInt se puede utilizar para convertir cadenas en números enteros si los caracteres de la cadena tienen un significado como números.
123456789101112131415161718 | Sub CIntExample_4 ()Dim StrEx como cadenaStrEx = "112"CInt de MsgBox (StrEx)El resultado es: 112StrEx = "112,3"CInt de MsgBox (StrEx)'El resultado es: 112 -> 112,3 se redondeaStrEx = "11,2"CInt de MsgBox (StrEx)'El resultado es: 112 ->, se ignoraStrEx = "$ 112"CInt de MsgBox (StrEx)'El resultado es: 112 -> $ se ignoraEnd Sub |
Error de tiempo de ejecución de CInt de VBA 13 No coinciden los tipos
El uso de la función VBA Cint con cadenas que contienen caracteres no numéricos o caracteres que no tienen significado en el contexto numérico dará como resultado un error de tiempo de ejecución "13": no coinciden los tipos.
1234567 | Sub CIntExample_5 ()'El código a continuación resultará en un mensaje de ERROR'CInt no puede manejar caracteres no numéricosDim StrEx como cadenaStrEx = "Ab13"CInt de MsgBox (StrEx)End Sub |
Desbordamiento del error 6 del tiempo de ejecución del CInt de VBA
El uso de la función VBA Cint con cadenas que dan como resultado un valor menor o mayor que el entero esperado resultará en un error de tiempo de ejecución "6": desbordamiento. El tipo de datos entero en Excel tiene un valor esperado de -32768 a 32767.
1234567 | Sub CIntExample_6 ()'El código a continuación resultará en un mensaje de ERROR'No puedo manejar caracteres no numéricosDim StrEx como cadenaStrEx = "1234567"CInt de MsgBox (StrEx)End Sub |
¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!
Configuración regional de VBA CInt
La función VBA CInt tiene un comportamiento diferente al convertir cadenas con coma o punto. Utiliza la configuración regional del sistema operativo para el separador decimal y el separador de dígitos.
12345678910111213141516 | Sub CIntExample_7 ()Dim StrEx como cadenaStrEx = "1,9"CInt de MsgBox (StrEx)"Si la configuración regional tiene, como separador de agrupación,El resultado es: 19"Si la configuración regional tiene, como separador decimal,'El resultado es: 2 (2 porque 1,9 se redondea)StrEx = "1.9"CInt de MsgBox (StrEx)"Si la configuración regional tiene. como un separador de agrupación entoncesEl resultado es: 19"Si la configuración regional tiene. como separador decimal entonces'El resultado es: 2 (2 porque 1,9 se redondea)End Sub |
Programación VBA | ¡Code Generator funciona para usted!
VBA CInt Conversión de valores booleanos en enteros
La función VBA Cint puede convertir variables booleanas en números enteros. Si la expresión evaluada es verdadera, el entero resultante es -1 y si la expresión evaluada es falsa, el entero resultante es 0.
12345678910 | Sub CIntExample_8 ()Dim BoolEx como booleanoBoolEx = VerdaderoMsgBox CInt (BoolEx) 'El resultado es: -1MsgBox CInt (2 = 2) 'El resultado es: -1BoolEx = FalsoMsgBox CInt (BoolEx) 'El resultado es: 0MsgBox CInt (1 = 2) 'El resultado es: 0End Sub |
VBA CInt Conversión de fechas a enteros
La función VBA Cint puede convertir una variable de fecha en un número entero. El valor devuelto es el número interno utilizado por Excel para el almacenamiento de fechas redondeado. Si ese número está fuera de los límites de enteros esperados para VBA, obtenemos un error de tiempo de ejecución "6": desbordamiento.
123456789 | Sub CIntExample_9 ()Dim DateEx como fechaDateEx = # 2/3/1940 #MsgBox CInt (DateEx)El resultado es: 14644DateEx = # 8/7/1964 #MsgBox CInt (DateEx)El resultado es: 23596End Sub |