Função Excel VBA CLng
“CLNG” significa tipo de dados “Converter para Longo” O limite do tipo de dados inteiro está entre -32768 a 32767, portanto, qualquer excesso que você deseja armazenar para essas variáveis, precisamos usar o tipo de dados LONG no VBA.
As variáveis são fundamentais em qualquer linguagem de programação e o VBA também não é diferente. Sem usar variáveis, é quase impossível escrever códigos longos. Se as variáveis são importantes, então a variável de tipo de dados que atribuímos a essas variáveis é ainda mais importante porque o tipo de dados que atribuímos a elas é o resultado final que obtemos.
Freqüentemente, podemos atribuir os dados numéricos como “String”, então isso gerará um erro durante os cálculos, então, usando funções de conversão, podemos converter o tipo de dados que desejamos. As funções de conversor comumente usadas são CLng, CInt, CDbl, CDate, CDec em vba. Neste artigo, mostraremos a você a função de conversão de tipo de dados inteiros “CLNG”.
Sintaxe
Abaixo está a sintaxe da função CLNG.
- Expressão nada mais é do que o valor ou a variável que queremos converter para o tipo de dados LONG.
Observação: o valor que estamos tentando converter deve ser um valor numérico diferente de um valor numérico que causará um “Erro de tempo de execução 13: incompatibilidade de tipo”
Exemplos para usar a função CLng no VBA
Você pode baixar este modelo VBA CLNG Excel aqui - modelo VBA CLNG ExcelExemplo 1
Agora veremos como convertemos o valor armazenado do texto para o tipo de dados “Longo”.
Para obter um exemplo, veja o código abaixo.
Código:
Sub CLNG_Example1 () Dim LongNumber As String Dim LongResult As Long LongNumber = "2564589" LongResult = CLng (LongNumber) MsgBox LongResult End Sub
Portanto, agora examine cuidadosamente o código para entender como isso funciona.
Primeiro, declaramos duas variáveis String e Long, respectivamente.
Código:
Dim LongNumber As String Dim LongResult As Long
Para a variável string, atribuímos o número do valor, mas entre aspas duplas, então o que isso fará é tratar o número “2564589” como uma string, não como uma variável “Longa”. Agora, para a outra variável LongResult, usamos a função Clng (LongNumber) para converter o número armazenado da string em uma variável LONG.
A próxima caixa de mensagem mostrará o resultado como um número LONG que é convertido de string para tipo de dados longos.
Resultado:
Exemplo # 2
Agora dê uma olhada no código abaixo.
Código:
Sub CLNG_Example2 () Dim LongNumber As String Dim LongResult As Long LongNumber = "Long Number" LongResult = CLng (LongNumber) MsgBox LongResult End Sub
Isso deve nos dar o resultado como “Type Mismatch” .
Entender por que o erro está ocorrendo é muito importante para corrigi-lo. Quando você olha de perto as variáveis para a primeira variável LongNumber, atribuímos o valor do texto como “Long Number”, então usamos a função Excel VBA CLNG para converter isso para o tipo de dados LONG.
A razão pela qual recebemos este erro é que o tipo de dados LONG pode aceitar apenas o tipo de dados numéricos, uma vez que fornecemos o valor da string para a variável, ele não pode converter o valor da string ou o valor do texto em um tipo de dados longo, então dá o erro como “ Type Mismatch ”.
Exemplo # 3
Outro erro que obtemos com o tipo de dados LONG é “Erro de estouro em vba”, ou seja, o tipo de dados de variável longa pode conter valores de -2.147.483.648 a 2.147.483.647. Portanto, qualquer valor acima disso causará um erro de estouro.
Para obter um exemplo, veja o código abaixo.
Código:
Sub CLNG_Example3 () Dim LongNumber As String Dim LongResult As Long LongNumber = "25645890003" LongResult = CLng (LongNumber) MsgBox LongResult End Sub
Para a variável “LongNumber” atribuí o número “25645890003” que está acima do limite do tipo de dados “Long”. Quando executamos o código acima, ele encontrará um erro “Overflow” .
Portanto, quando você estiver convertendo qualquer outro tipo de dados para o tipo de dados Longos, precisamos ter em mente todas as coisas acima.
Coisa para lembrar aqui
- CLNG significa convert to long.
- Esta função converte o outro tipo de dados em um tipo de dados longo.
- Você precisa saber o limite do tipo de dados longos para evitar erro de estouro.