Jotkut funktiot on määritelty funktion sisällä ja niitä käytetään funktioiden sisällä, ja jotkut muuttujat on määritelty toimintojen ulkopuolella, ja kaikki funktiot käyttävät niitä, ja tällaisia muuttujia käytetään globaaleina muuttujina, esimerkiksi alifunktion alla ilmoitetut muuttujat ovat tunnetaan globaaleina muuttujina.
Excel VBA: n globaali muuttuja
Muuttujan ilmoittaminen näyttää melko yksinkertaiselta, mutta jotta meillä olisi hyvät käytännön käytännöt, meidän on ymmärrettävä näiden muuttujien laajuus. Usein ilmoitamme jokaisen makron muuttujat alimenettelyn sisällä joka kerta. Mutta ilmoittamalla yksi muuttuja, voimme käyttää sitä kaikissa saman moduulin makroissa ja nykyisen VBA-projektin muissa moduuleissa. Tässä artikkelissa näytämme, kuinka ilmoitetaan globaalit muuttujat Excel VBA: ssa.
Mitä ovat globaalit muuttujat Excel VBA: ssa?
VBA Global Variables ovat muuttujia, jotka ilmoitetaan ennen minkä tahansa moduulin makron alkua. Kun muuttujat ilmoitetaan käyttämällä joko ”Public” tai “Global”, siitä tulee ”Global Variable”.
Alimenettelymuuttujia ei voi käyttää missään.
Ilmoitamme muuttujan yleensä aliohjelman sisällä VBA: ssa sanalla "Dim".
Katso yllä olevaa kuvaa. Olen ilmoittanut muuttujan "k" kokonaisluvuksi alimenettelyn Global_Example1 sisällä.
Oletetaan, että käytämme tätä muuttujaa tämän alimenettelyn sisällä milloin tahansa. En kuitenkaan voi käyttää tätä muuttujaa toisessa alimenetelmässä VBA: n samassa luokan moduulissa tai toisessa moduulissa.
Kuten yllä olevassa kuvassa on esitetty, alimenettelyssä Global_Example1 ilmoitettua muuttujaa "k" ei voida käyttää alimenettelyssä Global_Example2.
Vastaavasti alimenettelyssä Global_Example2 ilmoitettua muuttujaa “j” ei voida käyttää alakäytössä Global_Example1, vaikka molemmat alimenettelyt ovat samassa moduulissa.
Kuinka ilmoittaa globaali muuttuja VBA: ssa?
Seuraavassa on tapoja ilmoittaa globaali muuttuja Excel VBA: ssa.
# 1 - Moduulin muuttujia voidaan käyttää missä tahansa saman moduulin alimenettelyssä
Kuten olemme nähneet, emme voi käyttää alimenettelymuuttujia missään moduulissa. Jotta ne olisivat käytettävissä kaikille saman moduulin alimenettelyille, meidän on ilmoitettava muuttujat moduulin yläosassa.
Yllä olevassa kuvassa olen ilmoittanut muuttujan vain moduulin alussa. Olen ilmaissut muuttujan "MyNumber" kokonaislukuna moduulissa 1 .
Kun muuttuja on ilmoitettu moduulin yläosassa, voimme käyttää samaa muuttujaa kaikissa muissa saman moduulin alitoimenpiteissä. Tässä tapauksessa voimme käyttää muuttujaa "MyNumber" kaikille moduulin 1 alimenettelyille .
Ongelmana on, että emme voi käyttää niitä missään muussa moduulissa. Tässä tapauksessa moduulissa 1 ilmoitettua muuttujaa "MyNumber" ei voida käyttää moduulissa 2.
# 2 - Globaaleja muuttujia voidaan käyttää missä tahansa alimenetelmässä ja myös missä tahansa moduulissa
Nyt olemme nähneet kahdenlaisia muuttujailmoituksia ja niiden laajuutta käytön aikana. Jännittävää on, että voimme ilmoittaa muuttujan missä tahansa moduulissa ja käyttää sitä kaikkien alimenettelyjen osalta saman VBA-projektin kaikissa moduuleissa.
Jotta muuttuja olisi käytettävissä kaikille alimenettelyille kaikissa moduuleissa, meidän on ilmoitettava muuttuja moduulin yläosassa käyttämättä sanaa "Dim", mutta käyttämällä nimeä "Public" tai "Global".
Yllä olevasta kuvasta näet, että olen käyttänyt sanaa "Julkinen" ilmoittaaksesi muuttujan veteraanisanamme "Dim" sijaan .
Yllä olevassa kuvakaappauksessa olen ilmoittanut muuttujan moduulissa 1. Minulla on vielä kaksi moduulia, nimeltään Module 2 & Module 3.
Koska olen ilmoittanut muuttujan käyttämällä moduulin yläosassa olevaa sanaa ”Julkinen”, pääsen nyt käyttämään näitä muuttujia missä tahansa alimenettelyssä saman työkirjan missä tahansa moduulissa.
Ei vain "Public", mutta voimme myös käyttää sanaa "Global" ilmoittaaksesi muuttujan.
Globaali ja julkinen ovat kaksi avainsanaa, jotka ilmoittavat muuttujan ja asettavat ne saataville VBA: n moduuleihin.
Muistettavaa
- Kun excel-makro toimii globaalin muuttujan arvolla, muuttuja on sama kaikissa alimenettelyissä.
- On parempi ylläpitää tietty moduuli, jotta globaalit muuttujat ilmoitetaan VBA: ssa ja että kaikki muuttujat ovat yhdessä moduulissa.
- Ainoa tapa, jolla muuttujan arvo voidaan nollata, on nollata makrokoodi painamalla pysäytyspainiketta.