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 |