VBA pikk andmetüüp (muutuv muutuja)

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:

wave wave wave wave wave