Dlhý typ údajov VBA (premenná dimenzie)

Dlhý variabilný typ

VBA Dlho dátový typ sa používa na ukladanie veľmi dlhých hodnôt údajov (-2 147 483 648 až 2 147 483 648). Môže ukladať iba celé čísla (bez desatinných miest).

Na deklarovanie dlhej premennej použijete príkaz Dim (skratka pre dimenziu):

1 Dim lngA ako dlhý

Potom na priradenie hodnoty premennej jednoducho použite znamienko rovnosti:

1 lngA = 30 000

Uvedenie do postupu vyzerá takto:

12345678 Sub lngExample ()'deklarujte dlhú premennúDim lngA ako dlhý'vyplňte dlhú premennúlngA = 30 000“Zobraziť pole so správouMsgBox lngAKoniec pod

Ak spustíte kód uvedený vyššie, zobrazí sa nasledujúce okno so správou.

Dátový typ LongLong

Dátový typ LongLong je k dispozícii iba v 64 -bitovej verzii balíka Microsoft Office. Ak používate 32 -bitovú verziu balíka Office na 64 -bitovom počítači, tento typ údajov nebude k dispozícii. Podporuje čísla v rozsahu od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807.

1 Dim lngA ako LongLong

Dátový typ LongPtr

LongPtr bol zavedený do VBA za účelom podpory 64 -bitovej verzie balíka Microsoft Office. V 32 -bitovom systéme sa považuje za dlhý a v 64 -bitovom systéme sa považuje za dlhý.

1 Dim lngA ako LongPtr

Poznámka: LongPtr nie je k dispozícii v programe Excel 2007 alebo staršom.

Desatinné hodnoty a dlhé dátové typy

Dlhé premenné nemôžu ukladať desatinné hodnoty. Ak zadáte dlhé desatinné číslo, desatinné číslo sa zaokrúhli, aby sa odstránilo.

Ak by ste teda mali spustiť nasledujúci postup:

12345678 PoddĺžokpríkladB ()'deklarujte dlhú premennúDim lngA ako dlhý'vyplňte dlhú premennúlngA = 3524,12“Zobraziť pole so správouMsgBox lngAKoniec pod

Desatinná hodnota sa zaokrúhli nadol a vráti sa nasledujúce hlásenie:

Tento kód však nižšie:

12345678 PoddĺžokpríkladB ()'deklarujte dlhú premennúDim lngA ako dlhý'vyplňte dlhú premennúlngA = 3524,12“Zobraziť pole so správouMsgBox lngAKoniec pod

Vráti nasledujúce pole so správou (zaokrúhlené nahor):

Desatinný / dvojitý typ údajov

Ak chcete uložiť desatinné miesto, budete musieť deklarovať premennú, ktorá umožňuje desatinné miesta. Môžete použiť 3 typy údajov - jednoduchá, dvojitá alebo menová.

1 Dim sngCena ako single
1 Dim dblCena ako dvojnásobok
1 Dim curPrice ako mena

Dátový typ Single zaokrúhli desatinnú čiarku mierne odlišne na dvojitý a menový dátový typ, preto je vhodnejšie použiť dvojitú hodnotu na jednu. Double môže mať až 12 desatinných miest, zatiaľ čo mena a singel môžu mať až 4 desatinné miesta.

Deklarujte dlhú premennú na úrovni modulu alebo na globálnej úrovni

V predchádzajúcich príkladoch sme deklarovali premennú Long v rámci procedúry. Premenné deklarované pomocou postupu je možné použiť iba v rámci tohto postupu.

Namiesto toho môžete deklarovať dlhé premenné na úrovni modulu alebo na globálnej úrovni.

Úroveň modulu

Úroveň modulu premenné sú deklarované v hornej časti modulov kódu pomocou Dim vyhlásenie.

Tieto premenné je možné použiť s akýmkoľvek postupom v tomto module kódu.

Globálna úroveň

Globálna úroveň premenné sú tiež deklarované v hornej časti modulov kódu. Avšak namiesto použitia Dim vyhlásenie, použite príponu Verejné vyhlásenie, ktoré naznačuje, že dlhá premenná je k dispozícii na použitie vo vašom projekte VBA.

1 Verejný dlh ako dlhý

Ak by ste dlhú premennú deklarovali na úrovni modulu a potom sa ju pokúsili použiť v inom module, vyskytla by sa chyba.

Ak by ste však na zadanie dlhej premennej použili kľúčové slovo Public, chyba by sa nevyskytla a postup by fungoval perfektne.

Formát dlho uložený ako reťazec

Je možné, že budete chcieť naformátovať dlhý typ údajov na reťazec - napríklad dátum alebo budete chcieť zobraziť symbol meny.

Aby ste to dosiahli, použite funkciu Formát.

Nasledujúci postup:

1234567891011 Sub TestLongToString ()'deklarujte premennú reťazcaDim strDate ako reťazec'deklarujte long a vyplňte hodnotuDim lngDate tak dlholngDate = 44055'preveďte dlhý na reťazec formátovaný ako dátumstrDate = Formát (lngDate, "dd mmmm rrrr")'pozrite si výsledokDebug.Print strDateKoniec pod

vráti výsledok nižšie:

a nasledujúci postup

1234567891011 Sub testLongtoCurrencyString ()'deklarujte premennú reťazcaDim strMoney ako reťazec'deklarujte long a vyplňte hodnotuDim lngValue As LonglngValue = 44055'preveďte dlhý na reťazec so symbolom menystrMoney = Formát (lngValue, "$#, ## 0")'pozrite si výsledokMsgBox strMoneyKoniec pod

vráti tento výsledok:

wave wave wave wave wave