Verejná premenná Excel VBA

Premenná je dôležitou súčasťou života programátorov. Zakaždým, keď programátor kóduje, vytvorí určitú množinu premenných. Premennú je možné považovať za poukaz, ktorý často používame na webových stránkach s online nakupovaním, ako sú Flipkart, Amazon, atď. To isté platí pre premennú. Premennú je možné gramaticky definovať ako zástupný symbol, ktorý vyhradzuje určitú pamäť v systéme určitému názvu. Tento pamäťový priestor je potom možné kedykoľvek využiť s rovnakým názvom.

Premenná VBA sa považuje za verejnú premennú za dvoch okolností. Kedy -

  • Môže byť použitý spolu so všetkými kódmi v module.
  • Môže sa používať v rámci všetkých kódov pre rôzne moduly.

Z hľadiska laikov sa premenná považuje za verejnú premennú, ak sa dá použiť v akomkoľvek kóde a v ľubovoľnom module. V tomto článku sa chystáme zistiť, ako je možné definovať premennú. Ako sa dá verejne definovať v rámci VBA.

Pred začatím konceptu verejnej premennej VBA musíme pochopiť, že premenné, ktoré sa používajú v jednom čiastkovom postupe, nemožno použiť v inom čiastkovom postupe (to je miesto, kde sme začali cítiť potrebu verejnej premennej). ktoré sa dajú použiť v ktoromkoľvek module, ľubovoľnom čiastkovom postupe).

Predpokladajme, že vytvoríme podprogram vo VBA a definujeme novú premennú pomocou príkazu Dim.

V tomto kóde je var1 premenná definovaná podľa čiastkového postupu Ex_Var .

Teraz definujem nový čiastkový postup a iróniou je, že v tomto čiastkovom postupe nemôžem použiť predtým definovaný var1 . Pozri obrázok nižšie, kde sa pokúšam priradiť hodnotu 10 var1 v rámci iného čiastkového postupu. Po spustení kódu sa zobrazí chybové hlásenie.

Vyhlásením premenných v rámci čiastkových postupov ich obmedzujeme na použitie iba v tomto čiastkovom postupe. Je to hlavná nevýhoda deklarovania premennej v rámci čiastkového postupu.

To vedie k novej teórii, ktorá zahŕňa vyhlásenie o premennej mimo podprogramov. To pomôže programátorovi široko používať definované premenné s rôznymi podprogrammi.

Ako deklarovať verejné premenné vo VBA?

Pozrime sa na niekoľko príkladov deklarovania verejných premenných vo VBA.

Túto šablónu verejných premenných VBA si môžete stiahnuť tu - šablónu VBA verejných premenných VBA

Príklad č. 1 - Definovanie premennej verejne v rámci modulu

Predpokladajme, že chceme definovať premennú, ku ktorej je možné verejne pristupovať vo všetkých kódoch v rámci jedného modulu. Môžeme to urobiť. Postupujte podľa nasledujúcich krokov:

Krok 1: Otvorte Editor jazyka Visual Basic (VBE) tak, že stlačíte Alt + F11 alebo kliknete na tlačidlo Visual Basic na karte Vývojári v Exceli. Vyberte kartu Vložiť, prejdite na Moduly a kliknite na ňu. Pridá nový modul v rámci VBE, na ktorom bude pracovať.

Krok 2: Do novo vytvoreného modulu pridajte príkaz Option Explicit na začiatok kódu VBA (pred vytvorením akejkoľvek premennej). Možnosť Explicit vám pomôže, ak pri používaní definovanej premennej existuje preklep. Ak použitá premenná nie je v systéme definovaná, táto voľba vyvolá chybové hlásenie, že premenná nie je definovaná.

kód:

 Možnosť Explicitné 

Krok 3: Pomocou príkazu Dim vytvorte novú premennú s názvom my_name s typom údajov ako String.

kód:

 Možnosť Explicitné Dim my_name ako String 

Ak by ste mohli venovať pozornosť, túto premennú sme explicitne definovali. To znamená, že nie je súčasťou osobitného čiastkového postupu. Čo automaticky sprístupní túto premennú pre všetky kódy v rámci vytvoreného modulu (Modul 1). Toto sa nazýva verejné definovanie premennej v rámci modulu. Táto premenná sa môže použiť kdekoľvek v rámci viacerých čiastkových postupov v rámci toho istého modulu.

Predpokladajme, že kód uvedený nižšie, premennej my_name som priradil hodnotu „Lalit Salunkhe“.

kód:

 Možnosť Explicitné Dim my_name ako String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Moje meno je:" & my_name End Sub 

Ak spustím tento kód, zobrazí sa okno s hlásením, ako je uvedené na obrázku nižšie:

Túto premennú môžeme použiť aj v rôznych čiastkových procesoch v rámci toho istého modulu. Pozrite sa na snímku obrazovky uvedenú nižšie:

kód:

 Možnosť Explicitné Dim my_name ako String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Moje meno je:" & my_name End Sub Sub Ex_2 () Dim my_age ako celé číslo my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Moje meno je: "& my_name &"; Môj vek je: "& my_age End Sub 

Pozrite si čiastkový proc. Má novú premennú definovanú my_age. Použil som moje meno na pridanie môjho mena a my_age na pridanie aktuálneho veku mojej. Vidíte, že moje meno je stále prístupné v rámci druhého čiastkového postupu. Keď spustím tento kód, môžeme výstup získať ako okno správy uvedené nižšie:

Takto môžeme verejne definovať premennú v rámci modulu.

Príklad č. 2 - Definujte verejne premennú vo všetkých moduloch

Na dosiahnutie tohto cieľa je potrebné použiť kľúčové slová ako verejné alebo globálne namiesto Dim, ktoré nastavia premennú ako verejnú pre všetky moduly bez ohľadu na to, kde pracujete.

Krok 1: Vytvorte nový modul. Prejdite na kartu Vložiť a kliknutím na modul pridajte nový modul pod VBE.

Krok 2: Pridajte do modulu Explicit Option.

kód:

 Možnosť Explicitné 

Krok 3: Definujte novú premennú s názvom var1 a var2 ako celé číslo typu. Ale tentoraz pomocou verejného vyhlásenia namiesto Dim (ktoré sme predtým používali).

kód:

 Variant Explicitné Public var1 As Integer Verejné var2 As Integer 

Krok 4: Teraz môžu byť tieto dve premenné použité vo viacerých moduloch, ak boli vytvorené v rámci rovnakej VBE. Pozri príklad uvedený nižšie:

kód:

 Variant Explicitné Public var1 As Integer Public var2 As Integer Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "Hodnota pre var1 je:" & var1 & Chr (13) & "Hodnota pre var2 je:" & var2 End Sub 

Hodnoty sme priradili k obidvom premenným pomocou funkcie MsgBox a pokúsili sme sa zobraziť hodnoty pre tieto dve premenné.

Krok 5: Spustite kód stlačením klávesu F5 alebo kliknutím na tlačidlo Prehrať, môžete vidieť výstup, ako je uvedené nižšie:

Krok 6: Použijeme rovnaké premenné v rámci modulu 1, aké sme použili v prvom príklade, a pokúsime sa zistiť, či sú premenné tam dostupné alebo nie.

kód:

 Možnosť Explicitné Dim my_name ako String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Moje meno je:" & my_name End Sub Sub Ex_2 () Dim my_age ako celé číslo my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Moje meno je: "& my_name &"; Môj vek je: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Hodnota pre var1 je: "& var1 & Chr (13) &" Hodnota pre var2 je: "& var2 End Sub 

Ak ste videli obrázok vyššie, použili sme rovnakú množinu premenných definovaných v Module2 a hodnoty ako 1000 a 999. Na prezentáciu hodnôt týchto dvoch premenných používame funkciu MsgBox. Spustite kód a výstup môžete vidieť nasledovne:

Takto môže byť premenná verejne použitá v rámci modulu a naprieč modulmi.

Čo je potrebné pamätať

  • Vždy je výhodné definovať premenné explicitne vo VBA. Takže sa neobmedzujú iba na čiastkový postup, v ktorom sú definované.
  • Verejnú premennú môžete priradiť dvoma spôsobmi: jednu v rámci modulu pomocou konvenčného príkazu Dim a druhú vo všetkých moduloch prítomných vo VBE pomocou verejného alebo globálneho vyhlásenia.

Odporúčané články

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

  1. Globálne premenné VBA
  2. Jedna tabuľka premenných údajov v Exceli
  3. VBA FileSystemObject (FSO)
  4. Dve tabuľky premenných údajov v Exceli

Kategórie: