VBA Duplo

Tipo de dados duplo VBA Excel

VBA Double é um tipo de tipo de dados que atribuímos para declarar variáveis, que é uma versão melhorada ou mais longa da variável de tipo de dados “Única” e geralmente é usado para armazenar casas decimais mais longas.

O tipo de dados VBA Integer sempre converte valores decimais no valor inteiro mais próximo, o tipo de dados único pode mostrar até dois dígitos de casas decimais. Por outro lado, o tipo de dados “Duplo” pode armazenar valores de -1,79769313486231E308 a -4,94065645841247E324 para valores negativos e para números positivos pode armazenar valores de 4,94065645841247E-324 a 1,79769313486232E308 .

Mais importante ainda, ele consome 8 bytes de memória.

Exemplos para usar o tipo de dados duplo VBA

Você pode baixar este modelo VBA Double Excel aqui - VBA Double Excel Template

Exemplo 1

Antes de ver o exemplo do tipo de dados “Duplo”, vamos dar uma olhada nos códigos de exemplo dos tipos de dados “Inteiro” e “Único” no VBA. Observe o código VBA abaixo.

Código:

 Sub Integer_Ex () Dim k As Integer k = 2,569999947164 MsgBox k End Sub 

Eu declarei a variável “k” como Inteiro e para esta variável, atribuí o valor como 2,569999947164.

Vamos executar esse código manualmente ou usando a tecla de atalho do Excel F5, para ver o valor final na caixa de mensagem no VBA.

O resultado é mostrado como 3 em vez do número fornecido de 2,569999947164. O motivo é que o VBA converteu o número para o valor inteiro mais próximo, ou seja, 3.

Quando o valor decimal for maior que 0,5, ele será convertido para o próximo valor inteiro e quando o valor decimal for menor que 0,51, ele será convertido para o valor inteiro abaixo.

Agora vou mudar o tipo de dados de Inteiro para Único.

Código:

 Sub Integer_Ex () Dim k As Single k = 2,569999947164 MsgBox k End Sub 

Execute o código por meio da tecla de atalho F5 e veja qual número obtemos desta vez.

Desta vez, obtivemos o resultado de 2,57, portanto, desta vez, obtivemos duas casas decimais. O valor original que atribuímos foi 2,569999947164, portanto, neste caso, em terceiro lugar, o valor decimal colocado é 9, portanto, como é mais do que 5, ele converteu o valor decimal da segunda casa 6 em 7.

Agora mude o tipo de dados de Single para Double.

Código:

 Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub 

Agora execute o código manualmente e veja quantos dígitos obtemos no resultado da caixa de mensagem.

Desta vez, obteve todos os valores decimais. Podemos fornecer até 14 dígitos de casas decimais no tipo de dados Double.

Se você fornecer qualquer valor maior que 14 casas decimais, ele será convertido para o valor mais próximo. Para um exemplo, veja a imagem abaixo.

Eu digitei 15 casas decimais em vez de 14, se eu pressionar a tecla Enter, ele voltará para apenas 14 dígitos.

Em vez de 59 (últimos dois dígitos), obtivemos 6, ou seja, como o último dígito é 9, que é maior que 5, o número 5 é convertido para o próximo valor inteiro, ou seja, 6

Exemplo # 2

Agora vou mostrar como trabalhar com referência de célula em uma planilha. Abaixo estão os números que inseri na planilha.

Vamos iniciar a captura dos mesmos valores para o próximo usando o tipo de dados INTEGER , tipo de dados SINGLE e tipo DOUBLE .

Abaixo está o código para reter os valores da coluna A a B usando o tipo de dados INTEGER.

Código:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 a 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Vamos executar o código por meio da tecla de atalho F5, para ver quais valores obtemos na coluna B.

Quando usamos Integer como tipo de dados, obtemos todos os números inteiros, ou seja, sem decimais.

Agora vou apenas alterar o tipo de dados vba de uma variável de inteiro para Único.

Código:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 a 6 CellValue = Células (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Este código dará o resultado abaixo.

Desta vez, obtivemos apenas duas casas decimais.

Agora muda o tipo de dados de simples para duplo.

Código:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Double For k = 1 a 6 CellValue = Células (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Isso retornará o resultado abaixo.

Temos os valores exatos da coluna A.

Coisas para lembrar

  • Double é um tipo de dados aprimorado do tipo de dados Único.
  • Ele pode conter até 14 casas decimais.
  • Ele consome 8 bytes de memória do sistema.