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

Avalikud muutujad VBA-s

"Avalikud muutujad" VBA-s, 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.

Selle VBA avalike muutujate Exceli malli saate alla laadida siit - VBA avalike muutujate Exceli mall

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.

Meenutagem vana stiili, allpool on kood, mille olen kirjutanud ühe muutujaga.

Alammenetluses “Public_Variable” olen selle muutuja deklareerinud. 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

Kuna me kõik teame, et kirjutame makrosid moodulitesse, võime 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 sama mooduli kõigi alamprotseduuride puhul peame deklareerima muutujad mooduli ülaosas enne makrode alustamist.

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 hakatakse sisestama muutuja nime, näete, et IntelliSense'i loendis kuvatakse muutujate nimed.

Nüüd saame neid muutujaid kasutada kõigis makros, mille me kirjutame moodulisse1.

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 1. mooduli juurde, mille oleme muutujad deklareerinud, 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 makrodega, 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, sõnu "Globaalne" ja "Avalik" kasutades saame deklareerida muutujaid, 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 makrod on jooksma hakanud, on muutuja makro väärtus sama.
  • Määrake konkreetse väärtuse konkreetse makro sees olevale muutujale ainult igasuguse segaduse vältimiseks.

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