Este tutorial demonstrará como usar a função CInt VBA para converter uma expressão para o tipo de dados inteiro.
Função CInt
VBA CInt Converter Expressão em Inteiro
A função VBA CInt pode ser usada para converter expressões em tipo de dados inteiro dentro do código VBA. O número resultante é arredondado para se tornar um inteiro.
123456 | Sub CIntExample_1 ()MsgBox CInt (12.34) 'O resultado é: 12MsgBox CInt (12.345) 'O resultado é: 12MsgBox CInt (-124) 'O resultado é: -124MsgBox CInt (-12,34) 'O resultado é: -12End Sub |
Arredondamento VBA CInt
A função VBA CInt arredondará a parte decimal de um tipo de número ou uma expressão semelhante a um número. No entanto, ele não é arredondado corretamente em todos os casos. Quando a parte decimal é 0,5, a função VBA CInt retorna o inteiro par mais próximo.
12345678910111213141516 | Sub CIntExample_2 ()MsgBox CInt (0,34)'O resultado é: 0MsgBox CInt (0,99)'O resultado é: 1MsgBox CInt (-124,95)'O resultado é: -125MsgBox CInt (1.5)'O resultado é: 2MsgBox CInt (2,5)'O resultado é: 2End Sub |
Podemos adicionar um número decimal relativamente pequeno ao nosso valor decimal esperado para alterar o comportamento da função VBA Cint para o esperado.
1234567891011 | Sub CIntExample_3 ()MsgBox CInt (2,5)'O resultado é: 2MsgBox CInt (2,5 + 0,001)'O resultado é: 3MsgBox CInt (14.5)'O resultado é: 14MsgBox CInt (14,5 + 0,001)'O resultado é: 15End Sub |
Programação VBA | O Code Generator funciona para você!
VBA CInt convertendo strings em inteiros
A função VBA CInt pode ser usada para converter strings em inteiros se os caracteres na string tiverem um significado como números.
123456789101112131415161718 | Sub CIntExample_4 ()Dim StrEx como stringStrEx = "112"MsgBox CInt (StrEx)'O resultado é: 112StrEx = "112,3"MsgBox CInt (StrEx)'O resultado é: 112 -> 112,3 é arredondadoStrEx = "11,2"MsgBox CInt (StrEx)'O resultado é: 112 ->, é ignoradoStrEx = "$ 112"MsgBox CInt (StrEx)'O resultado é: 112 -> $ é ignoradoEnd Sub |
Erro de tempo de execução do VBA CInt 13 incompatibilidade de tipo
Usar a função VBA Cint com strings que contêm caracteres não numéricos ou caracteres que não têm significado no contexto numérico resultará em um erro de tempo de execução '13': incompatibilidade de tipo.
1234567 | Sub CIntExample_5 ()'O código abaixo resultará em uma mensagem ERROR'CInt não pode lidar com caracteres não numéricosDim StrEx como stringStrEx = "Ab13"MsgBox CInt (StrEx)End Sub |
Estouro de erro 6 em tempo de execução VBA CInt
Usar a função VBA Cint com strings que resultam em um valor menor ou maior do que o número inteiro esperado resultará em um erro de tempo de execução '6': estouro. O tipo de dados inteiro no Excel tem um valor esperado de -32768 a 32767.
1234567 | Sub CIntExample_6 ()'O código abaixo resultará em uma mensagem ERROR'CInt não pode lidar com caracteres não numéricosDim StrEx como stringStrEx = "1234567"MsgBox CInt (StrEx)End Sub |
Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!
Configurações regionais do VBA CInt
A função VBA CInt tem comportamento diferente na conversão de strings com vírgula ou ponto. Ele usa as configurações regionais do sistema operacional para separador decimal e separador de dígitos.
12345678910111213141516 | Sub CIntExample_7 ()Dim StrEx como stringStrEx = "1,9"MsgBox CInt (StrEx)‘Se as configurações regionais tiverem, como um separador de agrupamento, então'O resultado é: 19‘Se as configurações regionais tiverem, como separador decimal, então'O resultado é: 2 (2 porque 1,9 é arredondado)StrEx = "1,9"MsgBox CInt (StrEx)‘Se as configurações regionais tiverem. como um separador de agrupamento, então'O resultado é: 19‘Se as configurações regionais tiverem. como um separador decimal então'O resultado é: 2 (2 porque 1,9 é arredondado)End Sub |
Programação VBA | O Code Generator funciona para você!
VBA CInt convertendo booleanos em inteiros
A função VBA Cint pode converter variáveis booleanas em inteiros. Se a expressão avaliada for verdadeira, o inteiro resultante será -1 e se a expressão avaliada for falsa, o inteiro resultante será 0.
12345678910 | Sub CIntExample_8 ()Dim BoolEx As BooleanBoolEx = TrueMsgBox CInt (BoolEx) 'O resultado é: -1MsgBox CInt (2 = 2) 'O resultado é: -1BoolEx = FalseMsgBox CInt (BoolEx) 'O resultado é: 0MsgBox CInt (1 = 2) 'O resultado é: 0End Sub |
VBA CInt convertendo datas em inteiros
A função VBA Cint pode converter uma variável de data em um inteiro. O valor retornado é o número interno usado pelo Excel para armazenamento de dados arredondados. Se esse número estiver fora dos limites inteiros esperados para VBA, obtemos um erro de tempo de execução '6': estouro.
123456789 | Sub CIntExample_9 ()Dim DateEx As DateDateEx = # 2/3/1940 #MsgBox CInt (DateEx)'O resultado é: 14644DateEx = # 8/7/1964 #MsgBox CInt (DateEx)'O resultado é: 23596End Sub |