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: