VBA avalikud muutujad Avalike muutujate deklareerimine VBA-s (näited)

Lang L: none (table-of-contents)

Avalikud muutujad VBA-s

VBA-s olevad „avalikud muutujad”, nagu nimigi ütleb, on muutujad, mis on deklareeritud avalikult kasutamiseks kõigi makrode jaoks, mida me kirjutame samas moodulis ja ka erinevates moodulites. Niisiis, kui muutujad deklareeritakse iga makro alguses, nimetatakse neid “avalikeks muutujateks” või “globaalseteks muutujateks”.

Kuidas deklareerida avalikud muutujad VBA-s?

Tavaliselt alustame VBA alamprotseduuri ja alamprotseduuri sees deklareerime oma muutujad. See on levinud tava, mida me kõik oleme teinud kuni selle artiklini.

Iga kord, kui kirjutame uue alamprotseduuri, deklareerime värsked muutujad, millele on omistatud andmetüübid. Kuid täna jätame korduvate muutujatega alamprotseduurides hüvasti.

Tuletame meelde vana stiili. Allpool on kood, mille olen kirjutanud ühe muutujaga.

Alamprotseduuris “Public_Variable” olen deklareerinud selle muutuja. Nüüd ei saa ma ühtegi teist moodulit kasutada.

Nüüd ei saa me alamprotseduuris “Public_Variable1” kasutada muutujat “Var1”, mis kuulutati esimeses alamprotseduuris “Public_Variable”. See on muutujate deklareerimise piirang alamprotseduuride sees.

# 1 - moodulitaseme muutujad

Nagu me kõik teame, kirjutame makrod moodulitesse. Saame sisestada hulga mooduleid. Me võime VBA-s deklareerida kahte tüüpi „Avalikke muutujaid”, üks on kasutada muutujaid kõigi sama mooduli kõigi alamprotseduuride jaoks ja teine ​​on kasutada muutujaid kõigi moodulite kõigi alamprotseduuride jaoks.

Esiteks näeme VBA-s avalike muutujate deklareerimist moodulite tasemel.

Muutujate kasutamiseks ühes moodulis kõigi alamprotseduuride puhul peame enne makrosid alustama deklareerima muutujad mooduli ülaosas.

Allpool on teie mõistmiseks ekraanipilt.

Nagu näeme ülaltoodud pildil, olen enne moodulis mis tahes makro käivitamist deklareerinud kaks muutujat. Nüüd saab neid kahte muutujat kasutada selles moodulis suvalises arvus makros.

Alamprotseduuri sees hakkab sisestama muutuja nime, näete, et IntelliSense'i loendis kuvatakse muutujate nimed.

Nüüd saame neid muutujaid kasutada kõigis makros, mille kirjutame jaotisesse „Moodul1”.

Neid muutujaid saab kasutada ainult selles moodulis. Näiteks sisestan nüüd veel ühe mooduli ja kirjutan uue makro.

Moodulis2 ei saa ma kasutada neid muutujaid, mille oleme deklareerinud jaotises „Moodul1”.

Niisiis, kuidas saaksime need muutujad VBA-s avalikustada, et neid saaks kasutada kõigis moodulites ja kõigis alamprotseduurides?

# 2 - deklareerige, et muutujad kasutavad neid avalikult

Minge tagasi selle mooduli jaotisse „Moodul1”. Oleme deklareerinud muutujad enne, kui hakkame kirjutama makro viisi ja ka seda, millist maailma me nende muutujate deklareerimiseks kasutanud oleme.

Meie traditsiooniline viis DIM-i kasutamiseks oleme need muutujad deklareerinud.

Kui kasutame ainult sõna „DIM“, on see piiratud ainult kõigi makrode jaoks, kuid samas moodulis.

Sõna "DIM" asemel peame kasutama sõna "AVALIK" või "GLOBAL", et muuta need kõigi makrode moodulite jaoks kättesaadavaks.

Muutuja deklaratsiooni avalikustamiseks olen kasutanud sõna “Globaalne”. Võite kasutada ka sõna “Avalik”.

Niisiis, kasutades sõnu "Globaalne" ja "Avalik", võime deklareerida muutujad, mida saab kasutada kõigi moodulite makros.

Asjad, mida meeles pidada

  • Hea tava on muutujate avalik deklareerimine, kuid enne nende deklareerimist on vaja palju kogemusi.
  • Kui makrosid on hakatud üle jooksma, on muutuja makro väärtus sama.
  • Määrake konkreetse väärtuse konkreetse makro sees olevale muutujale ainult igasuguse segaduse vältimiseks.

Huvitavad Artiklid...