VBA: n globaalit muuttujat | Kuinka ilmoittaa globaali muuttuja VBA: ssa?

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ädet, meidän on ymmärrettävä näiden muuttujien laajuus. Usein ilmoitetaan jokaisen makron muuttujat alimenettelyn sisällä joka kerta. Mutta ilmoittamalla yksi muuttuja voimme käyttää sitä kaikissa saman moduulin makroissa sekä 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 moduulin minkä tahansa makron alkua. Kun muuttujat ilmoitetaan käyttämällä joko "Julkinen" tai "Yleinen", siitä tulee "Yleinen muuttuja".

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 alimenettelyssä Global_Example1.

Jos 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ä joko VBA: n saman luokan moduulissa tai toisessa moduulissa.

Kuten yllä olevassa kuvassa näkyy, 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 ilmoittanut muuttujan "MyNumber" kokonaisluvuksi moduulissa 1 .

Kun moduulin yläosassa ilmoitettu muuttuja, voimme käyttää samaa muuttujaa kaikissa muissa saman moduulin alitoimenpiteissä, tässä tapauksessa voimme käyttää muuttujaa "Oma numero" kaikkiin moduulin 1 alimenettelyihin .

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. Mielenkiintoinen asia on, että voimme ilmoittaa muuttujan missä tahansa moduulissa ja käyttää kaikkia alimenettelyjä 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 sanaa "Public" tai "Global".

Yllä olevasta kuvasta näet, että olen käyttänyt sanaa "Public" ilmoittaaksesi muuttujan veteraanisanamme "Dim" sijaan.

Yllä olevassa kuvakaappauksessa olen ilmoittanut muuttujan moduulissa 1. Minulla on vielä kaksi moduulia nimeltä Module 2 & Module 3.

Koska olen ilmoittanut muuttujan käyttämällä sanaa "Julkinen" moduulin yläosassa, pääsen nyt näihin muuttujiin missä tahansa alimenettelyssä saman työkirjan missä tahansa moduulissa.

Ei vain "Julkinen", mutta voimme myös käyttää sanaa "Globaali" ilmoittaaksesi muuttujan.

Globaali ja julkinen ovat kaksi avainsanaa, jotka ilmoittavat muuttujan ja asettavat ne saataville VBA: n moduuleihin.

Muistettavaa

  • Kun excel-makro suoritetaan globaalin muuttujan kanssa, muuttujan arvo 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.

$config[zx-auto] not found$config[zx-overlay] not found