Excel VBA Double Data Type
A VBA Double egyfajta adattípus, amelyet a változók deklarálásához rendelünk, amely az „Single” adattípus változó továbbfejlesztett vagy hosszabb változata, és általában hosszabb tizedesjegyek tárolására szolgál.
A VBA Integer adattípus a tizedes értékeket mindig a legközelebbi egész értékre konvertálja. Az egyetlen adattípus legfeljebb két számjegyű tizedesjegyet jeleníthet meg. Másrészt a „Double” adattípus -1,79769313486231E308 és -4,94065645841247E324 közötti értékeket tárol negatív értékek esetén, pozitív számok esetén pedig 4,94065645841247E-324 és 1,79769313486232E308 értékeket .
Ennél is fontosabb, hogy 8 bájt memóriát emészt fel.

Példák a VBA Double Data Type használatára
1. példa
Mielőtt megnéznénk a „Double” adattípus példáját, nézzük meg a VBA „Integer” és „Single” típusú adatait. Nézze meg az alábbi VBA kódot.
Kód:
Sub Integer_Ex () Dim k As Integer k = 2,569999947164 MsgBox k End Sub

A „k” változót egész számnak nyilvánítottam, és ehhez a változóhoz 2,569999947164 értéket rendeltem.
Futtassuk ezt a kódot manuálisan vagy az excel F5 gyorsbillentyűvel, hogy lássuk a végső értéket a VBA üzenetmezőjében.

Az eredmény 3-ként jelenik meg a megadott 2.569999947164 szám helyett. A VBA oka a számot a legközelebbi egész számra, azaz 3-ra konvertálta.
Ha a tizedesérték nagyobb, mint 0,5, akkor átvált a következő egész számra, és ha a tizedes értéke kisebb, mint 0,51, akkor az egész érték alatti értékre változik.
Most meg fogom változtatni az adattípust egész számról egyetlen értékre.
Kód:
Sub Integer_Ex () Dim k As Single k = 2,569999947164 MsgBox k End Sub

Futtassa a kódot az F5 gyorsbillentyűn keresztül, és nézze meg, hogy ezúttal milyen számot kapunk.

Ezúttal 2,57-es eredményt kaptunk, így ezúttal két tizedesjegyet kaptunk. Az általunk hozzárendelt eredeti érték 2,569999947164 volt, tehát ebben az esetben harmadszor, az elhelyezett tizedesérték 9, tehát mivel ez meghaladja az 5-et, a második tizedes decimális értéket 7-re konvertálta.
Most módosítsa az adattípust Single-ről Double-re.
Kód:
Sub Integer_Ex () Dim k As Double k = 2,569999947164 MsgBox k End Sub

Most futtassa manuálisan a kódot, és nézze meg, hány számjegyet kapunk az üzenetmező eredményében.

Ez az idő megkapta az összes tizedesértéket. Legfeljebb 14 számjegyű tizedesjegyet adhatunk meg a Double data type alatt.
Tegyük fel, hogy bármelyik tizedesjegynél nagyobb értéket a legközelebbi értékre konvertálunk. Nézze meg például az alábbi képet.

15 tizedesjegyet írtam be 14 helyett. Ha megnyomom az Enter billentyűt, az csak 14 jegyű lesz.

59 (utolsó két számjegy) helyett 6-ot kapunk, azaz mivel az utolsó számjegy 9, ami nagyobb, mint 5, az előző 5-ös számot a következő egész számra, azaz 6-ra konvertáljuk
2. példa
Most megmutatom, hogyan kell dolgozni a cellahivatkozásokkal egy munkalapon. Az alábbiakban láthatom azokat a számokat, amelyeket beírtam a munkalapra.

Kezdjük ugyanazok az értékek rögzítését a következőre az INTEGER adattípus, az SINGLE adattípus és a DOUBLE típus használatával.
Az alábbiakban látható az A és B oszlop közötti értékek megőrzésére szolgáló kód az INTEGER adattípus használatával.
Kód:
Sub Double_Ex () Dim k egész számként Dim CellValue egész számként k = 1-től 6-ig CellValue = cellák (k, 1). Érték cellák (k, 2). Érték = CellValue következő k End Sub

Futtassuk a kódot az F5 gyorsbillentyűn keresztül, hogy lássuk, milyen értékeket kapunk a B oszlopban.

Amikor az Integer adattípust használtuk, akkor megkapjuk az egész számokat, azaz tizedesjegyek nélkül.
Most csak egy változó VBA adattípusát változtatom egész számról Single-re.
Kód:
Sub Double_Ex () Dim k egész számként Dim CellValue mint Single For k = 1-6 CellValue = Cellák (k, 1). Érték Cellák (k, 2). Érték = CellValue Következő k End Sub

Ez a kód az alábbi eredményt adja.

Ezúttal csak két tizedesjegyet kaptunk.
Most módosítja az adattípust egyszeresről kettősre.
Kód:
Sub Double_Ex () Dim k egész számként Dim CellValue kettősként k = 1-től 6-ig CellValue = cellák (k, 1). Érték cellák (k, 2). Érték = CellValue következő k End Sub

Ez az alábbi eredményt adja vissza.

Pontos értékeket kaptunk az A oszlopból.
Dolgok, amikre emlékezni kell
- A Double az egy adattípus továbbfejlesztett adattípusa.
- Legfeljebb 14 tizedesjegy lehet.
- 8 bájt rendszermemóriát fogyaszt.