Este tutorial demonstrará como usar a função CLng VBA para converter uma expressão para o tipo de dados inteiro longo.
Função CLng
VBA CLng Converter Expressão em Longo
A função VBA CLng pode ser usada para converter expressões em tipos de dados longos dentro do código VBA.
123456 | Sub CLngExample_1 ()MsgBox CLng (12.34) 'O resultado é: 12MsgBox CLng (12.345) 'O resultado é: 12MsgBox CLng (-124) 'O resultado é: -124MsgBox CLng (-12.34) 'O resultado é: -12End Sub |
Arredondamento VBA CLng
A função VBA CLng 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 CLng retorna o inteiro par mais próximo.
1234567891011 | Sub CLngExample_2 ()MsgBox CLng (0.34) 'O resultado é: 0MsgBox CLng (0,99) 'O resultado é: 1MsgBox CLng (-124,95) 'O resultado é: -125MsgBox CLng (1.5) 'O resultado é: 2MsgBox CLng (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 CLng para o esperado.
1234567891011 | Sub CLngExample_3 ()MsgBox CLng (2,5)'O resultado é: 2MsgBox CLng (2,5 + 0,001)'O resultado é: 3MsgBox CLng (14.5)'O resultado é: 14MsgBox CLng (14,5 + 0,001)'O resultado é: 15End Sub |
Programação VBA | O Code Generator funciona para você!
VBA CLng convertendo Strings em Longs
A função VBA CLng pode ser usada para converter strings em longos se os caracteres na string tiverem um significado como números.
123456789101112131415161718 | Sub CLngExample_4 ()Dim StrEx como stringStrEx = "112"MsgBox CLng (StrEx)'O resultado é: 112StrEx = "112,3"MsgBox CLng (StrEx)'O resultado é: 112 112,3 é arredondadoStrEx = "11,2"MsgBox CLng (StrEx)'O resultado é: 112, é ignoradoStrEx = "$ 112"MsgBox CLng (StrEx)'O resultado é: 112 $ é ignoradoEnd Sub |
Erro de tempo de execução de VBA CLng 13 incompatibilidade de tipo
Usar a função VBA CLng 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 CLngExample_5 ()'O código abaixo resultará em uma mensagem ERROR'CLng não pode lidar com caracteres não numéricosDim StrEx como stringStrEx = "Ab13"MsgBox CLng (StrEx)End Sub |
Estouro de erro 6 de tempo de execução VBA CLng
Usar a função VBA CLng 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 -2.147.483.648 a 2.147.483.647.
1234567 | Sub CLngExample_6 ()'O código abaixo resultará em uma mensagem ERROR'CLng não pode lidar com caracteres não numéricosDim StrEx como stringStrEx = "2147483648"MsgBox CLng (StrEx)End Sub |
Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!
Configurações regionais VBA CLng
A função VBA CLng 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 CLngExample_7 ()Dim StrEx como stringStrEx = "1,9"MsgBox CLng (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 CLng (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 CLng convertendo booleanos em longos
A função VBA CLng pode converter variáveis booleanas em longos. Se a expressão avaliada for verdadeira, o longo resultante será -1 e se a expressão avaliada for falsa, o longo resultante será 0.
1234567891011121314 | Sub CLngExample_8 ()Dim BoolEx As BooleanBoolEx = TrueMsgBox CLng (BoolEx)'O resultado é: -1MsgBox CLng (2 = 2)'O resultado é: -1BoolEx = FalseMsgBox CLng (BoolEx)'O resultado é: 0MsgBox CLng (1 = 2)'O resultado é: 0End Sub |
VBA CLng convertendo datas em longos
A função VBA CLng pode converter uma variável de data em uma longa. O valor retornado é o número interno usado pelo Excel para armazenamento de dados arredondados. Se esse número estiver fora dos limites longos esperados para o VBA, obteremos um erro de tempo de execução '6': estouro.
123456789101112 | Sub CLngExample_9 ()Dim DateEx As DateDateEx = # 2/3/1940 #MsgBox CLng (DateEx)'O resultado é: 14644DateEx = # 8/7/1964 #MsgBox CLng (DateEx)'O resultado é: 23596DateEx = # 3/7/1934 11h32:04 #MsgBox CLng (DateEx)'O resultado é: 12485End Sub |