Javne spremenljivke v VBA
"Javne spremenljivke" v VBA, kot že ime pove, so spremenljivke, za katere je navedeno, da jih javno uporabljajo za vse makre, ki jih pišemo v isti modul, pa tudi v različne module. Torej, ko so spremenljivke deklarirane na začetku katerega koli makra, se imenujejo "javne spremenljivke" ali "globalne spremenljivke".
Kako razglasiti javne spremenljivke v VBA?
Običajno zaženemo podproceduro VBA, znotraj podprocedure pa prijavimo svoje spremenljivke. To je običajna praksa, ki smo jo vsi počeli do tega članka.
Vsakič, ko napišemo nov podproces, razglasimo sveže spremenljivke z dodeljenimi podatkovnimi tipi. Toda danes se bomo poslovili od ponavljajočih se spremenljivk v podprocedurah.
Spomnimo se starega sloga. Spodaj je koda, ki sem jo napisal z eno spremenljivko.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_2.jpg.webp)
V podprocedu "Public_Variable" sem razglasil to spremenljivko. Zdaj ne morem uporabljati nobenega drugega modula.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_3.jpg.webp)
Zdaj v podprocesu "Public_Variable1" ne moremo uporabiti spremenljivke "Var1", ki je bila deklarirana v prvem podproceduri "Public_Variable." To je omejitev deklariranja spremenljivk znotraj podpostopov.
# 1 - Spremenljivke na ravni modula
Kot vsi vemo, makro zapisujemo v module. Vstavimo lahko številne module. V VBA lahko razglasimo dve vrsti "javnih spremenljivk", ena je uporaba spremenljivk za vse podpostopke v istem modulu, druga pa uporaba spremenljivk za vse podprocedure v vseh modulih.
Najprej bomo videli razglasitev javnih spremenljivk v VBA na ravni modula.
Če želimo uporabiti spremenljivke za vse podprocedure v istem modulu, moramo spremenljivke razglasiti na vrhu modula, preden zaženemo makre.
Spodaj je primer posnetka zaslona za vaše razumevanje.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_4.jpg.webp)
Kot lahko vidimo na zgornji sliki, sem pred spremembo makra v modulu razglasil dve spremenljivki. Zdaj lahko ti dve spremenljivki uporabimo v poljubnem številu makrov v tem modulu.
Znotraj podprocedure začne vnašati ime spremenljivke, ki jo vidite, da bo seznam IntelliSense prikazal imena spremenljivk.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_5.jpg.webp)
Zdaj lahko te spremenljivke uporabljamo v vseh makrih, ki jih zapišemo v “Module1”.
Te spremenljivke so omejene na uporabo samo v tem modulu. Na primer, zdaj bom vstavil še en modul in napisal nov makro.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_6.jpg.webp)
V modulu 2 ne morem uporabiti tistih spremenljivk, ki smo jih navedli v modulu 1.
Torej, kako lahko te spremenljivke omogočimo v VBA za uporabo v vseh modulih in v vseh podprocedurah?
# 2 - Izjavi spremenljivke jih uporabi javno
Vrnite se na “Modul1” v tem modulu. Spremenljivke smo razglasili, preden smo začeli pisati način makra in tudi kakšen svet smo uporabili za razglasitev teh spremenljivk.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_7.jpg.webp)
Naš tradicionalen način uporabe besede "DIM" smo razglasili za te spremenljivke.
Kadar uporabljamo samo besedo »DIM«, je omejena na uporabo v vseh makrih, vendar v istem modulu.
Namesto besede »DIM« moramo uporabiti besedo »JAVNO« ali »GLOBALNO«, da jih omogočimo za uporabo v vseh modulih makrov.
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_8.jpg.webp)
Za objavo spremenljivke sem uporabil besedo "Global". Uporabite lahko tudi besedo "Javno".
![](https://cdn.know-base.net/8174293/vba_public_variables_how_to_declare_public_variables_in_vba_examples_9.jpg.webp)
Tako lahko z uporabo besed "Global" in "Public" razglasimo spremenljivke, ki se lahko uporabljajo za vse makre v modulih.
Stvari, ki si jih je treba zapomniti
- Dobra praksa je, da spremenljivke prijavite javno, vendar potrebujete dovolj izkušenj, preden jih prijavite.
- Ko se makri začnejo izvajati čez, bo vrednost spremenljivke makra enaka.
- Določite določeno vrednost spremenljivki znotraj določenega makra, da se izognete kakršni koli zmedi.