VBA globaalsed muutujad Kuidas deklareerida VBA globaalne muutuja?

Lang L: none (table-of-contents)

Mõned funktsioonid on määratletud funktsiooni sees ja neid kasutatakse funktsioonides ning mõned muutujad on määratletud väljaspool funktsioone ja neid kasutavad kõik funktsioonid ning selliseid muutujaid kasutatakse globaalsete muutujatena, näiteks on alamfunktsiooni all deklareeritud muutujad tuntud kui globaalsed muutujad.

Exceli VBA globaalne muutuja

Muutuja deklareerimine näib üsna lihtne, kuid selleks, et neil oleks hea praktiline käik, peame mõistma nende muutujate ulatust. Sageli deklareerime iga kord alamprotseduuri sees olevate makrode muutujad. Ühe muutuja deklareerimisega saame seda kasutada kõigis sama mooduli makrodes ja praeguse VBA projekti muudes moodulites. Selles artiklis näitame teile, kuidas deklareerida Exceli VBA globaalsed muutujad.

Mis on Exceli VBA globaalsed muutujad?

VBA globaalsed muutujad on muutujad, mis deklareeritakse enne mooduli mis tahes makro algust. Kui muutujad deklareeritakse kas „Avalik” või „Globaalne” abil, saab sellest “Globaalne muutuja”.

Alamprotseduuri muutujaid ei saa kusagil kasutada.

Tavaliselt deklareerime muutuja VBA alamprogrammis, kasutades sõna „Dim”.

Vaadake ülaltoodud pilti. Olen deklareerinud muutuja “k” täisarvuna alamprotseduuri Global_Example1 sees.

Oletame, et kasutame seda muutujat selles alamprotseduuris igal ajahetkel. Kuid ma ei saa seda muutujat kasutada teises alamprotseduuris ei VBA sama klassi moodulis ega mõnes muus moodulis.

Nagu ülaltoodud pildil näidatud, ei saa alamprotseduuris Global_Example1 deklareeritud muutujat „k” kasutada alamprotseduuris Global_Example2.

Samamoodi ei saa alamprotseduuris Global_Example2 deklareeritud muutujat j kasutada alamprotseduuris Global_Example1, kuigi mõlemad alamprotseduurid on samas moodulis.

Kuidas deklareerida VBA globaalne muutuja?

Järgmised on viisid ülemaailmse muutuja deklareerimiseks Exceli VBA-s.

# 1 - mooduli muutujaid saab kasutada sama mooduli mis tahes alamprotseduurides

Nagu nägime, ei saa me üheski moodulis kasutada alamprotseduuri muutujaid. Nende kättesaadavaks tegemiseks kõigi sama mooduli alamprotseduuride jaoks peame deklareerima muutujad mooduli ülaosas.

Ülaltoodud pildil olen muutuja deklareerinud ainult mooduli alguses. Muutuja “MyNumber” olen väljendanud moodulis 1 täisarvuna .

Kui muutuja on mooduli ülaosas deklareeritud, saame sama muutujat kasutada kõigi teiste sama mooduli alamprotseduuride jaoks. Sel juhul saame kõigi mooduli 1 alamprotseduuride jaoks kasutada muutujat „MyNumber” .

Probleem on selles, et me ei saa neid kasutada üheski teises moodulis. Sellisel juhul ei saa moodulis 1 deklareeritud muutujat „MyNumber” kasutada moodulis 2.

# 2 - globaalseid muutujaid saab kasutada igas alamprotseduuris ja ka igas moodulis

Nüüd oleme kasutamisel näinud kahte tüüpi muutujadeklaratsiooni ja nende ulatust. Põnev on see, et võime deklareerida muutuja mis tahes moodulis ja kasutada seda kõigi VBA projekti kõigi moodulite kõigi alamprotseduuride jaoks.

Muutuja kättesaadavaks muutmiseks kõigi alamprotseduuride jaoks kõigis moodulites peame deklareerima muutuja mooduli ülaosas mitte sõna „Dim”, vaid nime „Public” või „Global” abil.

Ülaltoodud pildil näete, et kasutasin muutuja deklareerimiseks meie veteransõna „Dim” asemel sõna „Public” .

Ülaltoodud ekraanipildil olen deklareerinud muutuja moodulis 1. Mul on veel kaks moodulit, nimega moodul 2 ja moodul 3.

Kuna olen muutuja deklareerinud mooduli ülaosas oleva sõnaga „Avalik”, saan nüüd neile muutujatele juurde pääseda mis tahes alamprotseduuris sama töövihiku mis tahes moodulis.

Muutuja deklareerimiseks ei saa mitte ainult „Public”, vaid kasutada ka sõna „Global”.

Globaalne ja avalik on kaks märksõna, mis deklareerib muutuja ja muudab need VBA moodulites kättesaadavaks.

Asjad, mida meeles pidada

  • Kui Exceli makro töötab globaalse muutuja väärtusega, on muutuja kõigis alamprotseduurides sama.
  • Parem on säilitada konkreetne moodul, et deklareerida globaalsed muutujad VBA-s ja kõik muutujad oleksid ühes moodulis.
  • Ainus viis, kuidas saame muutuja väärtuse lähtestada, on makro koodi lähtestamine stopp-nuppu vajutades.

Huvitavad Artiklid...