VBA kahekordne | Kuidas deklareerida topeltandmetüüp VBA-s?
Exceli VBA topeltandmete tüüp
VBA Double on omamoodi andmetüüp, mille omistame muutujate deklareerimiseks. See on andmetüübi muutuja „Single” täiustatud või pikem versioon ning seda kasutatakse tavaliselt pikemate kümnendkohtade salvestamiseks.
Andmetüüp VBA Integer teisendab kümnendväärtused alati lähima täisarvu väärtuseni, üks andmetüüp võib näidata kuni kaks numbrit kümnendkohti. Teisest küljest saab „topelt” andmetüüp negatiivsete väärtuste jaoks salvestada väärtusi vahemikus -1,79769313486231E308 kuni -4,94065645841247E324 ja positiivsete arvude korral väärtusi 4,94065645841247E-324 kuni 1,79769313486232E308 .
Veelgi olulisem on see, et see kulutab 8 baiti mälu.
Näited VBA Double Data Type kasutamise kohta
Selle VBA Double Exceli malli saate alla laadida siit - VBA Double Exceli mallNäide 1
Enne kui näeme „topelt” andmetüübi näidet, vaatame VBA andmetüübi „täisarv” ja „üksik” näidiskoode. Vaadake allpool olevat VBA-koodi.
Kood:
Sub Integer_Ex () Dim k As Integer k = 2,569999947164 MsgBox k End Sub
Olen deklareerinud muutuja “k” täisarvuna ja selle muutuja jaoks olen määranud väärtuseks 2,569999947164.
Käivitame selle koodi käsitsi või kasutades Exceli otseteeklahvi F5, et näha lõplikku väärtust VBA teatekastis.
Tulemust näidatakse 3-na, mitte tarnitud numbri 2.569999947164 asemel. Põhjus VBA on teisendanud numbri lähima täisarvu väärtuseni 3.
Kui kümnendarv on suurem kui 0,5, teisendatakse see järgmiseks täisarvuks ja kui kümnendarv on väiksem kui 0,51, teisendatakse see täisarvuks.
Nüüd muudan andmetüübi täisarvust üksikuks.
Kood:
Sub Integer_Ex () Dim k üksikuna k = 2,569999947164 MsgBox k End Sub
Käivitage kood otseteeklahvi F5 kaudu ja vaadake, mis numbri me seekord saame.
Seekord saime tulemuseks 2,57, seega seekord kaks komakohta. Meie määratud algväärtus oli 2,569999947164, seega antud juhul on kolmandaks paigutatud kümnendväärtus 9, nii et kuna see on rohkem kui 5, on see teisendanud teise koha kümnendväärtuse 6 väärtuseks 7.
Nüüd muutke andmetüüp ühest ühekordseks.
Kood:
Sub Integer_Ex () Dim k As Double k = 2,569999947164 MsgBox k End Sub
Nüüd käivitage kood käsitsi ja vaadake, mitu numbrit saame sõnumikasti tulemust.
See aeg sai kõik kümnendarvud. Topeltandmete tüübi all saame esitada kuni 14 numbrit kümnendkohti.
Kui sisestate väärtuse, mis on suurem kui 14 kümnendkoha täpsustamiseks, teisendatakse see lähima väärtuseni. Näiteks vaadake allolevat pilti.
Olen sisestanud 14 kümnendkoha asemel kümnendkoha täpsust. Kui vajutan sisestusklahvi, on see tagasi ainult 14 kohaline.
59 (viimase kahe numbri) asemel saime 6, st kuna viimane number on 9, mis on suurem kui 5, siis eelmine arv 5 teisendatakse järgmiseks täisarvuks, st 6
Näide 2
Nüüd näitan töölehel lahtriviidetega töötamist. Allpool on numbrid, mille olen töölehele sisestanud.
Alustame samade väärtuste hõivamist järgmisele, kasutades INTEGER andmetüüpi, SINGLE andmetüüpi ja DOUBLE tüüpi.
Allpool on kood veergude A kuni B väärtuste säilitamiseks andmetüübi INTEGER abil.
Kood:
Sub Double_Ex () Dim k täisarvuna Dim CellValue täisarvuna k = 1 kuni 6 CellValue = lahtrid (k, 1). Väärtus Lahtrid (k, 2). Väärtus = CellValue Järgmine k End Sub
Käivitame koodi otseteeklahvi F5 kaudu, et näha, millised väärtused saame veerus B
Kui oleme andmetüübina kasutanud täisarvu, siis saime kõik täisarvud, st ilma kümnendkohtadeta.
Nüüd muudan lihtsalt muutuja vba andmetüübi täisarvust Single väärtuseks.
Kood:
Sub Double_Ex () Dim k täisarvu Dim CellValue üksikuna k = 1 kuni 6 CellValue = lahtrid (k, 1). Väärtus Lahtrid (k, 2). Väärtus = CellValue Järgmine k End Sub
See kood annab järgmise tulemuse.
Seekord saime ainult kaks kohta pärast koma.
Nüüd muudab andmetüüp ühest kahekordseks.
Kood:
Sub Double_Ex () Dim k täisarvuna Dim CellValue kahekordne väärtusena k = 1 kuni 6 CellValue = lahtrid (k, 1). Väärtuse lahtrid (k, 2). Väärtus = CellValue Järgmine k End Sub
See annab järgmise tulemuse.
Täpsed väärtused on saadud veerust A
Asjad, mida meeles pidada
- Double on üksikute andmetüüpide täiustatud andmetüüp.
- Sellesse mahub kuni 14 kohta pärast koma.
- See tarbib 8 baiti süsteemimälu.