Typ údajov variantu VBA (premenná dimenzie)

Variant Variabilný typ

Variabilná premenná môže obsahovať ľubovoľný čas údajov (reťazec, celé čísla, desatinné miesta, objekty atď.). Ak typ deklarujete, bude sa považovať za variant.

Ak chcete deklarovať premennú Variant, použite príkaz Dim (skratka pre dimenziu):

1 Dim varName ako Variant
1 Dim rng ako Variant

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

1 varName = "John"
1 rng = Listy (1). Rozsah ("A1")

Uvedenie do postupu vyzerá takto:

12345678910 Podstr. Príklad ()“vyhlásiť variantyDim strName As VariantDim rng As Variant“vyplňte premennéstrName = "Fred Smith"Nastaviť rng = listy (1). Rozsah ("A1")„vyplňte hárokrng.Value = strNameKoniec pod

Ak spustíte kód uvedený vyššie, bunka A1 v hárku 1 bude vyplnená textom „Fred Smith“

Podľa vyššie uvedených mien by sme mohli vyvodiť záver, že varName bude obsahovať text a objSheet bude obsahovať objekt pracovného hárka. V skutočnosti však do premennej je možné nasmerovať akýkoľvek typ údajov.

Vyššie uvedené premenné môžete naplniť nasledovne a nevyskytne sa žiadna chyba.

1 varName = 6
1 objSheet - "Fred"

Je neobvyklé používať variantné premenné a nepovažuje sa to za osvedčený postup. Príležitostne sú však variabilné premenné užitočné.

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

V predchádzajúcom príklade ste deklarovali premennú Variant 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ť premenné variantov na modulovej alebo 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žijete Verejné vyhlásenie, ktoré naznačuje, že reťazcová premenná je k dispozícii na použitie vo vašom projekte VBA.

1 Verejný názov str. Ako variant

Ak by ste premennú variantu deklarovali na úrovni modulu a použili by ste ju v inom module, došlo by k chybe.

Ak by ste na deklaráciu variantnej premennej použili kľúčové slovo Public, chyba by sa nevyskytla a postup by prebehol perfektne.

Použitie variantu na vyplnenie Excelu

Zvážte nasledujúci postup:

12345678910111213141516171819 Sub test premenná'deklarujte reťazec, ktorý bude obsahovať názov produktuDim strProduct ako reťazec„deklarovať celé číslo, aby sa zachovalo množstvo výrobkuDim iQty ako celé číslo„Deklaruje zdvojnásobenie ceny produktu a celkovej cenyDim dblCena ako dvojnásobokDim dblCelkom ako dvojnásobok“vyplňte premennéstrProduct = "Viacúčelová múka"iQty = 3dblPrice = "5,00 USD"dblTotal = "15,00 dolárov"“vyplňte hárok programu ExcelRozsah ("A1") = strProductRozsah ("A2") = iQtyRozsah ("A3") = dblCenaRozsah ("A4") = dblCelkomKoniec pod

Keď spustíme tento kód, vyskytne sa nasledujúca chyba.

Kliknite na položku Ladiť

Do premennej nemôžete vložiť znak dolára, pretože premenná je deklarovaná ako a Dvojité, a preto nemôže ukladať hodnoty reťazcov.

Vyhlásiť dblCena a dblCelkom ako varianty, čo znamená, že nie ste obmedzení na typ údajov.

1 Dim dblCena ako variant
1 Dim dblCelkom ako variant

Znova spustite kód a údaje sa v hárku programu Excel zobrazia tak, ako by mali.

Upozorňujeme, že údaje zadané vo formáte A4 a A5 sa pomocou programu Excel automaticky prevedú na čísla.

Vyhlásenie dynamického poľa

Variabilné premenné sú tiež užitočné pri deklarovaní dynamického poľa, pretože umožňujú zmenu veľkosti poľa počas spustenia.

SVariantné pole, nemusíte definovať veľkosť poľa. Veľkosť sa automaticky upraví.

123456789 Pole pod variantom ()Dim arrList () ako variant„Definujte hodnotyarrList = pole (1, 2, 3, 4)'Zmeniť hodnotyarrList = pole (1,2,3,4,5,6)„Výstupná poloha 4MsgBox arrVar (4)Koniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave