VBA Double

Excel VBA dubbel datatyp

VBA Double är en typ av datatyp som vi tilldelar för att deklarera variabler, vilket är en förbättrad eller längre version av "Single" -datatypvariabeln och används vanligtvis för att lagra längre decimaler.

VBA Integer-datatyp konverterar alltid decimalvärden till närmaste helvärde, den enskilda datatypen kan visa upp till två siffror med decimaler. Å andra sidan kan "Dubbel" datatyp lagra värden från -1,79769313486231E308 till -4,94065645841247E324 för negativa värden och för positiva siffror kan den lagra värden från 4,94065645841247E-324 till 1,79769313486232E308 .

Ännu viktigare är att den förbrukar 8 byte minne.

Exempel på att använda VBA Double Data Type

Du kan ladda ner denna VBA Double Excel-mall här - VBA Double Excel-mall

Exempel nr 1

Innan vi ser exemplet med "Dubbel" datatyp, låt oss titta på exempelkoderna för "Heltal" och "Enkel" datatyp i VBA. Titta på nedanstående VBA-kod.

Koda:

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

Jag har deklarerat variabeln "k" som heltal och för denna variabel har jag tilldelat värdet 2,569999947164.

Låt oss köra den här koden manuellt eller använda excel-kortkommandot F5 för att se det slutliga värdet i meddelandefältet i VBA.

Resultatet visas som 3 istället för det medföljande numret 2.569999947164. Anledningen är att VBA har omvandlat talet till närmaste heltal, dvs. 3.

När decimalvärdet är mer än 0,5 kommer det att konverteras till nästa heltal och när decimalvärdet är mindre än 0,51 kommer det att konverteras till under heltalsvärdet.

Nu kommer jag att ändra datatypen från heltal till singel.

Koda:

 Sub Integer_Ex () Dim k Som singel k = 2.569999947164 MsgBox k End Sub 

Kör koden genom snabbtangenten F5 och se vilket nummer vi får den här gången.

Den här gången fick vi resultatet 2,57, så den här gången fick vi två decimaler. Det ursprungliga värdet vi har tilldelat var 2,569999947164, så i det här fallet, det tredje, är det placerade decimalvärdet 9, så eftersom det här är mer än 5 har det omvandlat det andra decimalvärdet 6 till 7.

Ändra nu datatypen från Single till Double.

Koda:

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

Kör nu koden manuellt och se hur många siffror vi får i meddelandefältets resultat.

Den här gången fick alla decimalvärden. Vi kan leverera upp till 14 siffror med decimaler under dubbel datatyp.

Om du anger något värde som är större än 14 decimal kommer konverteras till närmaste värde. För ett exempel, se nedanstående bild.

Jag har skrivit 15 decimaler istället för 14, om jag trycker på Enter-tangenten kommer den bara tillbaka till 14 siffror.

I stället för 59 (de två sista siffrorna) fick vi 6 dvs eftersom den sista siffran är 9 vilket är större än 5 föregående nummer 5 omvandlas till nästa heltal, dvs. 6

Exempel 2

Nu ska jag visa hur man arbetar med cellreferens i ett kalkylblad. Nedan visas siffrorna som jag har angett i kalkylbladet.

Låt oss börja fånga samma värden till nästa genom att använda INTEGER- datatyp, ENKEL datatyp och DUBBEL typ.

Nedan visas koden för att behålla värden från kolumn A till B med hjälp av datatypen INTEGER.

Koda:

 Sub Double_Ex () Dim k som heltal Dim cellvärde som heltal För k = 1 till 6 Cellvärde = celler (k, 1). Värde celler (k, 2). Värde = Cellvärde Nästa k Avsluta sub 

Låt oss köra koden genom snabbtangenten F5 för att se vilka värden vi får i kolumn B.

När vi har använt Integer som datatyp fick vi alla heltal dvs utan decimaler.

Nu ändrar jag bara vba-datatypen för en variabel från heltal till singel.

Koda:

 Sub Double_Ex () Dim k som heltal Dim CellVärde som singel För k = 1 till 6 CellVärde = Celler (k, 1). Värdeceller (k, 2) .Värde = CellVärde Nästa k Slut Sub 

Den här koden ger resultatet nedan.

Den här gången fick vi bara två decimaler.

Ändrar nu datatypen från enkel till dubbel.

Koda:

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

Detta ger resultatet nedan.

Vi har exakta värden från kolumn A.

Saker att komma ihåg

  • Dubbel är en förbättrad datatyp av enkel datatyp.
  • Den kan rymma upp till 14 decimaler.
  • Det förbrukar 8 byte systemminne.