Globálne premenné programu Excel VBA

Zvyčajne deklarujeme každú premennú pomocou slova DIM, a to je najlepšia priama metóda, ako to dosiahnuť. Ale premenné deklarované pomocou DIM sa dajú použiť iba v rámci toho istého modulu. Ak sa pokúsime použiť túto premennú definovanú pomocou DIM, bude sa vzťahovať na modul, pod ktorým sa deklaruje. Čo ak chceme použiť premennú v ktoromkoľvek module alebo projekte? Čo nie je možné, ak na definovanie tejto premennej naďalej používame DIM?

V takom prípade máme sekundárnu možnosť definovaním premennej slovom Globálne alebo Verejné vo VBA. Globálne alebo verejné premenné VBA sú tie premenné, ktoré sú deklarované na začiatku podkategórie pomocou Option Explicit. Nech už sú čokoľvek, čo v podkategóriách nerobíme alebo nemôžeme, robia sa pred tým v časti Explicitné.

Ako deklarovať globálne premenné vo VBA?

Nižšie sú uvedené rôzne príklady deklarovania globálnej premennej v programe Excel pomocou kódu VBA.

Túto šablónu VBA Global Variables Excel si môžete stiahnuť tu - šablónu VBA Global Variables Excel

Globálne premenné VBA - príklad č. 1

V tomto príklade uvidíme, ako môžu byť rôzne podkategórie použité ako jeden modul bez použitia globálneho alebo verejného slova na definovanie akejkoľvek premennej. Na to by sme potrebovali modul.

  • Prejdite do ponuky Vložiť a kliknite na modul, ako je to znázornené nižšie.

  • Teraz zadajte podkategóriu do ľubovoľného názvu, ako je uvedené nižšie.

kód:

 Sub Global_Variable () End Sub 

  • Teraz pomocou DIM definujte akýkoľvek druh premennej. Tu sme vybrali abecedu A ako String .

kód:

 Sub Global_Variable () Dim A ako String End Sub 

  • Teraz vytvorte ďalšiu podkategóriu v rovnakom module, ako je znázornené nižšie.

kód:

 Sub Global_Variable () Dim A ako String End Sub Sub Global_Variable6 () End Sub 

  • Teraz v druhej podkategórii definujte ďalšiu premennú B pomocou DIM ako String.

kód:

 Sub Global_Variable () Dim A ako String End Sub Sub Global_Variable6 () Dim B ako String End Sub 

Ako je uvedené vyššie, premenné A a B definované v oboch podkategóriách sa nemôžu použiť v regióne druhej strany. Tieto budú uplatniteľné iba vo vlastnej podkategórii.

  • Teraz, aby to fungovalo, napíšte Option Explicit nad prvú podkategóriu, ako je uvedené nižšie.

kód:

 Možnosť Explicitné Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

  • Teraz môžeme definovať našu premennú, ktorá bude použitá v oboch podkategóriách, ktoré máme nižšie. Takže teraz zvážte zápis akejkoľvek premennej vyslovujúcej A ako reťazec pomocou DIM.

kód:

 Možnosť Explicitné Dim A ako reťazec Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Ako sme definovali premennú, všetky podkategórie budú v tomto module a toto by sa vzťahovalo iba na celý kód tohto modulu. A ak by sme sa pokúsili volať premenné definované v tomto module na iný modul, znamenalo by to chybu.

Globálne premenné VBA - príklad č. 2

V tomto príklade uvidíme, ako používať globálne alebo verejné slovo na definovanie akejkoľvek premennej v Exceli VBA. Na tento účel použijeme kód, ktorý sme videli v príklade 1.

Nižšiu časť kódu použijeme na globálne alebo verejné vyhlásenie o premennej.

kód:

 Možnosť Explicitné Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Ako sme to urobili v príklade 1, kde sme deklarovali spoločnú premennú, ktorá by sa použila v oboch podkategóriách, pod možnosťou Explicit. V príklade deklarujeme globálnu premennú aj pod výslovnou opciou.

Pretože už máme náš kód pripravený, takže môžeme priamo pokračovať v deklarovaní premenných pomocou Global . Teraz v nižšie uvedenej možnosti Explicitné písanie globálne to isté, s čím sme zvykli s DIM, a vyberte premennú výberu. Tu vyberáme abecedu A, ako je znázornené nižšie.

kód:

 Možnosť Explicitné Global A Sub Global_Variable () Dim A ako reťazec End Sub Sub Global_Variable6 () Dim B ako reťazec End Sub 

Teraz si vyberieme akýkoľvek typ premennej. Pretože sme už v uvedenom príklade použili String, použili by sme to aj tu.

kód:

 Možnosť Explicitné globálne A ako reťazec Sub Global_Variable () Dim A ako reťazec End Sub Sub Global_Variable6 () Dim B ako reťazec End Sub 

Týmto sa dokončuje náš globálny proces deklarovania premenných. Teraz to môžeme použiť v ľubovoľnom module, v každom projekte iba ako String. Predtým, ako ju použijeme, vymažte predtým deklarovanú premennú a potom bude kód vyzerať tak, ako je to zobrazené nižšie.

kód:

 Option Explicit Global A as String Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Teraz priradíme nejaký text k definovanej premennej A v oboch podkategóriách. Vyberáme „Test1“ a „Test2“ pre premennú A v oboch podkategóriách, ako je uvedené nižšie. A tiež sme vybrali MsgBox na zobrazenie hodnôt uložených v premennej A.

kód:

 Option Explicit Global A as String Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Teraz spustite kód stlačením klávesu F5 alebo kliknutím na tlačidlo Prehrať, aby ste videli výsledok.

Správa sa zobrazí ako „Test1“, ako je uvedené vyššie. Je to preto, že sme držali kurzor v prvej podkategórii.

Teraz umiestnite kurzor kamkoľvek do druhej podkategórie a znova spustite kód. Teraz sa zobrazí okno so správou „Test2“, ako je uvedené nižšie.

Takto dokážeme raz vytvoriť a definovať premennú pomocou Global, ktorú je možné použiť v ľubovoľnom module, akejkoľvek triede av akomkoľvek projekte. Môžeme používať aj verejnosť namiesto Global, ako je uvedené nižšie. A to prinesie rovnaký výsledok, aký sme dosiahli pri používaní služby Global.

kód:

 Option Explicit Public A as String Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Výhody globálnej premennej VBA

  • Keď vieme, šetrí čas pri deklarovaní viacerých premenných, možno bude potrebné znova definovať rovnaký typ premennej v rôznych moduloch alebo podkategóriách.
  • Použitím Global alebo Public pri definovaní premenného procesu sa náš kód zmenší a ušetrí tak čas a priestor.
  • Znižuje sa tým zložitosť, keď píšeme obrovský kód, a môže sa zamieňať medzi používaním rôznych premenných v rôznych moduloch alebo podkategóriách.

Nevýhody globálnej premennej VBA

  • Ak urobíme akékoľvek zmeny v globálnej premennej, tieto zmeny sa implementujú do všetkých oblastí, v ktorých sa používajú, čo spôsobuje problém s funkčnosťou písaného kódu.

Čo je potrebné pamätať

  • Globálne a verejné môžu byť používané zameniteľne s rovnakou funkčnosťou.
  • Ak nechceme používať globálnu premennú, potom môžeme pri definovaní premennej postupovať podľa postupu uvedeného v príklade 1. To by však bolo obmedzené na ten istý modul.
  • Globálne premenné môžu byť použité v akomkoľvek module, akejkoľvek podkategórii, akejkoľvek triede alebo v akomkoľvek projekte.
  • Globálna premenná udáva výstup kódu, v ktorom máme kurzor. Celý program sa nespustí naraz a celý výstup bude vydávať jeden po druhom.

Odporúčané články

Toto je sprievodca globálnymi premennými VBA. Tu diskutujeme o tom, ako deklarovať globálne premenné v Exceli pomocou kódu VBA, spolu s niekoľkými praktickými príkladmi a šablónou Excel na stiahnutie. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. UserForm VBA
  2. Riešenie rovnice v Exceli
  3. VBA Activate Sheet
  4. Ako upraviť rozbaľovací zoznam v Exceli?

Kategórie: