Pika muutuja tüüp
VBA Pikk andmetüüpi kasutatakse väga pikkade andmeväärtuste salvestamiseks (-2 147 483 648 kuni 2 147 483 648). See võib salvestada ainult terveid numbreid (ilma kümnendkohata).
Pika muutuja deklareerimiseks kasutage Dim Statement (lühend Dimension):
1 | Dim lngA kui pikk |
Seejärel kasutage muutujale väärtuse määramiseks lihtsalt võrdusmärki:
1 | lngA = 30000 |
Selle protseduuri lisamine näeb välja selline:
12345678 | Alam lngNäide ()'deklareerige pikk muutujaDim lngA kui pikk'täitke pikk muutujalngA = 30000'näidake sõnumikastMsgBox lngAEnd Sub |
Kui käivitate ülaltoodud koodi, kuvatakse järgmine sõnumikast.
LongLong andmetüüp
Andmetüüp LongLong on saadaval ainult Microsoft Office'i 64 -bitises versioonis. Kui kasutate Office'i 32 -bitist versiooni 64 -bitises masinas, pole see andmetüüp saadaval. See toetab numbreid vahemikus -9 223 372 036 854 775 808 kuni 9 223 372 036 854 775 807.
1 | Dim lngA kui LongLong |
LongPtr andmetüüp
LongPtr tutvustati VBA -sse, et toetada Microsoft Office'i 64 -bitist versiooni. 32 -bitises süsteemis käsitletakse seda pika ja 64 -bitise süsteemi puhul LongLongina.
1 | Dim lngA kui LongPtr |
Märkus. LongPtr pole saadaval versioonis Excel 2007 või varasemas versioonis.
Kümnendväärtused ja pikad andmetüübid
Pikad muutujad ei saa kümnendväärtusi salvestada. Kui annate kümnendkoha pikalt, ümardatakse kümnendarv kümnendkoha eemaldamiseks.
Seega, kui peaksite järgima järgmist protseduuri:
12345678 | Sub LngExampleB ()'deklareerige pikk muutujaDim lngA kui pikk'täitke pikk muutujalngA = 3524,12'näidake sõnumikastMsgBox lngAEnd Sub |
Kümnendväärtus ümardatakse allapoole ja tagastatakse järgmine teade:
Kuid see kood allpool:
12345678 | Sub LngExampleB ()'deklareerige pikk muutujaDim lngA kui pikk'täitke pikk muutujalngA = 3524,12'näidake sõnumikastMsgBox lngAEnd Sub |
Tagastab järgmise sõnumikasti (ümardamine):
Kümnend / kahekordne andmetüüp
Kui soovite salvestada kümnendkoha, peate deklareerima muutuja, mis võimaldab komakohti. Kasutada saab 3 andmetüüpi - ühe-, kahe- või valuuta.
1 | Dim sngHind üksikuna |
1 | Dim dblHind kahekordselt |
1 | Hämardage valuuta valuutat |
Üksik andmetüüp ümardab kümnendkoha veidi teisiti kui topelt- ja valuuta andmetüüp, seega on täpsuse huvides eelistatav kasutada kahekordset ühele. Kahekordsel võib olla kuni 12 kohta pärast koma, samas kui valuutal ja üksikul võib olla kuni neli kohta pärast koma.
Pika muutuja deklareerimine moodulil või globaalsel tasandil
Eelmistes näidetes oleme protseduuri jooksul kuulutanud muutuja pikk. Protseduuriga deklareeritud muutujaid saab kasutada ainult selle protseduuri raames.
Selle asemel saate deklareerida pikki muutujaid mooduli või globaalsel tasandil.
Mooduli tase
Mooduli tase muutujad deklareeritakse koodimoodulite ülaosas koos Dim avaldus.
Neid muutujaid saab selle koodimooduli mis tahes protseduuriga kasutada.
Globaalne tase
Globaalne tase muutujad deklareeritakse ka koodimoodulite ülaosas. Selle asemel, et kasutada Dim avaldust, kasutage Avalik avaldus, mis näitab, et pikk muutuja on saadaval kogu teie VBA projekti jaoks.
1 | Avalik lngA kui pikk |
Kui deklareeriksite pika muutuja mooduli tasemel ja prooviksite seda kasutada mõnes teises moodulis, ilmneks tõrge.
Kui aga oleksite pika muutuja deklareerimiseks kasutanud märksõna Avalik, ei ilmneks viga ja protseduur toimiks ideaalselt.
Vorming kaua salvestatud stringina
Võib juhtuda, et soovite vormindada pika andmetüübi stringiks - näiteks kuupäeva või kuvada valuutasümboli.
Selle saavutamiseks kasutate funktsiooni Vorming.
Järgmine protseduur:
1234567891011 | AlamkatseLongToString ()'deklareerige string muutujaHämarda strDate stringina'kuulutage pikk ja sisestage väärtusHämarda kuupäev nii kauaKuupäev = 44055'teisendage pikk kuupäevaks vormindatud stringiksstrDate = Vorming (lngDate, "dd mmmm yyyy")'vaata tulemustSilumine. Prindi strDateEnd Sub |
tagastab tulemuse allpool:
ja järgmine protseduur
1234567891011 | AlamkatseLongtoCurrencyString ()'deklareerige string muutujaDim strMoney kui string'kuulutage pikk ja sisestage väärtusDim lngValue As LonglngValue = 44055'teisendage pikk valuutasümboliga stringiksstrMoney = Vorming (lngValue, "$#, ## 0")'vaata tulemustMsgBox strMoneyEnd Sub |
tagastaks sellise tulemuse: