Função VBA CDBL

Função Excel VBA CDBL

VBA CDBL é uma função de conversão de tipo de dados embutida e o uso dessa função é que ela converte o tipo de dados de qualquer valor de qualquer variável em um tipo de dados Double, esta função leva apenas um único argumento que é o valor da própria variável.

Em VBA, “CDBL” significa “Converter em duplo”. Esta função converte o número fornecido em tipo de dados Double. Dê uma olhada na sintaxe da função CDBL.

  • Expressão é o valor que estamos tentando converter para o tipo de dados Double.

Qualquer número flutuante armazenado como outro tipo de dados diferente de double pode ser convertido aplicando a função CDBL.

Aponte para lembrar aqui: Somente valores numéricos podem ser convertidos para o tipo de dados Double. Qualquer coisa diferente do valor numérico não pode ser convertido para o tipo duplo, então acabe exibindo “Erro de incompatibilidade de tipo em VBA” como mostrado abaixo.

Você já usou um tipo de dados duplo na codificação VBA?

Se não, vale a pena dar uma olhada agora. Double é o tipo de dados usado para armazenar a posição decimal do número. Podemos ter até 13 números decimais flutuantes.

Para obter um exemplo, veja o código VBA abaixo.

Acima, eu defini o tipo de variável (k) como Inteiro. Dim k As Integer

Em seguida, atribuí o valor como k = 25.4561248694615

Quando eu executar o código, obteremos o resultado da seguinte maneira.

Obtivemos o resultado como 25. Uma vez que definimos a variável como VBA inteiro, arredondar para o valor inteiro mais próximo.

Para mostrar o resultado como ele é, precisamos alterar o tipo de variável de Inteiro para Duplo.

Isso deve nos dar o número exato que atribuímos à variável.

Ok, tendo isso em mente, também podemos converter todos os números de fração que são armazenados como um tipo de dados não duplo.

Exemplos para usar a função VBA CDBL

Você pode baixar este modelo de função VBA CDBL aqui - modelo de função VBA CDBL

Exemplo 1

Para iniciar o processo, vamos examinar o código abaixo.

Código:

 Sub Double_Example1 () Dim k As String k = 48.14869569 MsgBox k End Sub 

Agora irei executar o código e ver o que acontece.

Mesmo que o tipo de variável VBA seja “String”, ela ainda mostra os valores decimais. Isso ocorre porque String pode ser de qualquer tipo de dados, portanto, os números decimais ou flutuantes são mostrados como estão.

Agora vou mudar o tipo de dados de string para inteiro.

Código:

 Sub Double_Example1 () Dim k As Integer k = 48,14869569 MsgBox k End Sub 

Agora irei executar o código e ver o que acontece.

É aqui que a função CDBL desempenha um papel vital para converter o tipo de dados inteiro em double. Portanto, o código abaixo é o mesmo para você.

Código:

 Sub Double_Example1 () Dim IntegerNumber As String Dim DoubleNumber As Double IntegerNumber = 48.14869569 DoubleNumber = CDbl (IntegerNumber) MsgBox DoubleNumber End Sub 

Isso converterá o valor do tipo de dados da string em Double.

Exemplo # 2

Agora vamos converter o número 854.6947 que está armazenado como Variant para o tipo de dados Double.

Código:

 Sub Double_Example2 () Dim VaraintNumber Dim DoubleNumber As Double VaraintNumber = 854.6947 DoubleNumber = CDbl (VaraintNumber) MsgBox DoubleNumber End Sub 

A primeira variável que declarei como “Variante”. Dim VaraintNumber

Observação: quando o tipo de variável não é declarado, ele se torna um tipo de dados universal Variant.

Em seguida, declarei mais uma variável, ou seja, Dim DoubleNumber As Double

Para a primeira variável VaraintNumber, atribuímos o valor de 854,6947.

Agora, usando a segunda variável, aplicamos a função CDBL para converter o valor Variant para o tipo de dados Double.

DoubleNumber = CDbl (VaraintNumber)

A parte final é mostrar o resultado na caixa de mensagem. MsgBox DoubleNumber

Agora irei executar o código para ver o resultado.

Coisas para lembrar

  • Um tipo de dados duplo pode aceitar apenas números numéricos.
  • Se o valor de texto for fornecido, ele causará um erro de incompatibilidade de tipo.
  • Um tipo de dados duplo pode exibir apenas 13 dígitos de números flutuantes.