VBA globális változók - Hogyan lehet deklarálni a globális változót a VBA-ban?

Néhány függvény egy függvényen belül van definiálva, és a függvényeken belül használatos, néhány változó pedig a függvényeken kívül van definiálva, és az összes függvény használja őket, és ezeket a változókat globális változóként használják, például az alfunkció alatt deklarált változók: globális változók néven ismert.

Globális változó az Excel VBA-ban

A változó deklarálása meglehetősen egyszerűnek tűnik, de ahhoz, hogy jó gyakorlattal rendelkezzünk, meg kell értenünk a változók hatókörét. Gyakran minden alkalommal deklaráljuk az alfolyamaton belüli makrók változóit. De egy változó deklarálásával használhatjuk ugyanabban a modulban az összes makróban és a jelenlegi VBA projekt többi moduljában. Ebben a cikkben megmutatjuk, hogyan deklarálhatók globális változók az Excel VBA-ban.

Mik a globális változók az Excel VBA-ban?

A VBA globális változók olyan változók, amelyeket a modul bármely makrójának kezdete előtt deklarálunk. Amikor a változókat a „Nyilvános” vagy a „Globális” használatával deklaráljuk, akkor a „Globális változó” lesz.

Az alfolyamat-változók nem használhatók sehol.

A változót általában a szubrutin belsejében deklaráljuk a VBA-ban a „Dim” szó használatával.

Nézd meg a fenti képet. A „k” változót egész számként deklaráltam a Global_Example1 alfolyamaton belül.

Tegyük fel, hogy ezt a változót ebben a Sub eljárásban bármikor használjuk. Ezt a változót azonban nem használhatom egy másik alfolyamatban sem a VBA azonos osztálymoduljában, sem egy másik modulban.

Amint a fenti képen látható, a Global_Example1 alfolyamatban deklarált „k” változó nem használható a Global_Example2 alfolyamatban.

Hasonlóképpen, a Global_Example2 alfolyamatban deklarált „j” változó nem használható a Global_Example1 alfolyamatban, annak ellenére, hogy mindkét alfolyamat ugyanabban a modulban van.

Hogyan lehet deklarálni a globális változót a VBA-ban?

Az alábbiakban bemutatjuk a globális változó deklarálásának módját az excel VBA-ban.

# 1 - A modulváltozók ugyanabban a modulban bármely alfolyamatban használhatók

Mint láttuk, egyik modulban sem használhatjuk az alfolyamat-változókat. Ahhoz, hogy elérhetőek legyenek az összes Sub eljárás számára ugyanazon modulban, deklarálnunk kell a változásokat a modul tetején.

A fenti képen csak a modul elején deklaráltam a változót. A „Saját szám” változót egész számként fejeztem ki az 1. modulban .

Miután a változó deklarálva van a modul tetején, ugyanazt a változót használhatjuk ugyanabban a modulban az összes többi Sub eljáráshoz. Ebben az esetben a „MyNumber” változót használhatjuk az 1. modul összes Sub eljárásához .

A probléma az, hogy nem használhatjuk őket a többi modulban. Ebben az esetben az 1. modulban deklarált „Saját szám” változó nem használható a 2. modulban.

# 2 - A globális változók bármilyen alfolyamatban és bármely modulban használhatók

Most kétféle változó deklarációt és azok hatókörét láttuk a használat során. Az izgalmas dolog, hogy deklarálhatjuk a változót bármelyik modulban, és felhasználhatjuk az összes Sub eljáráshoz ugyanazon VBA projekt összes moduljában.

Ahhoz, hogy a változó elérhető legyen az összes Sub eljáráshoz az összes modulban, a modul tetején kell deklarálnunk a változót nem a „Dim”, hanem a „Public” vagy a „Global” név használatával.

A fenti képen látható, hogy a „Nyilvános” szót használtam a változó deklarálásához a „Dim” veterán szavunk helyett .

A fenti képernyőképen deklaráltam a változót az 1. modulban. Van még két modulom, a 2. modul és a 3. modul.

Mivel a változót a modul tetején található „Nyilvános” szóval deklaráltam, most ugyanezen munkafüzet bármely modulján keresztül bármelyik alfolyamatban hozzáférhetek ezekhez a változókhoz.

Nem csak a „Public”, hanem a „Global” szót is használhatjuk a változó deklarálásához.

A Global & Public a két kulcsszó, amely deklarálja a változót, és elérhetővé teszi azokat a VBA moduljaiban.

Dolgok, amikre emlékezni kell

  • Amint az excel makró globális változó értékével fut, a változó az összes Sub eljárásban megegyezik.
  • Jobb fenntartani egy adott modult a globális változók deklarálásához a VBA-ban, és az összes változónak egy modulban kell lennie.
  • A változó értékét csak úgy állíthatjuk vissza, ha a makro kódot a stop gomb megnyomásával állítjuk vissza.

érdekes cikkek...