Dažas funkcijas ir definētas funkcijas iekšienē un tiek izmantotas funkcijās, un daži mainīgie ir definēti ārpus funkcijām, un tos izmanto visas funkcijas, un šādus mainīgos lielumus izmanto kā globālos mainīgos, piemēram, apakšfunkcijā deklarētie mainīgie ir pazīstams kā globālie mainīgie.
Excel VBA globālais mainīgais
Mainīgā deklarēšana šķiet diezgan vienkārša, taču, lai viņiem būtu labi praktiski jautājumi, mums ir jāsaprot šo mainīgo darbības joma. Bieži vien mēs katru reizi deklarējam katra makro mainīgos apakšprocedūras ietvaros. Deklarējot vienu mainīgo, mēs to varam izmantot visos makros tajā pašā modulī un pārējos pašreizējā VBA projekta moduļos. Šajā rakstā mēs parādīsim, kā deklarēt globālos mainīgos programmā Excel VBA.
Kas ir globālie mainīgie programmā Excel VBA?
VBA globālie mainīgie ir mainīgie, kas tiek deklarēti pirms jebkura makro sākuma modulī. Kad mainīgie tiek deklarēti, izmantojot “Public” vai “Global”, tas kļūst par “Global Variable”.
Apakšprocedūras mainīgos nevar izmantot nekur.
Parasti mainām mainīgo VBA apakšprogrammā, izmantojot vārdu “Dim”.

Paskaties uz iepriekšējo attēlu. Esmu deklarējis mainīgo “k” kā veselu skaitli apakšprocedūrā Global_Example1.
Pieņemsim, ka mēs šajā mainīgajā procedūrā izmantojam šo mainīgo jebkurā laika posmā. Tomēr es nevaru izmantot šo mainīgo citā apakšprocedūrā ne tajā pašā klases modulī VBA, ne citā modulī.

Kā parādīts iepriekšējā attēlā, mainīgo “k”, kas deklarēts apakšprocedūrā Global_Example1, nevar izmantot apakšprocedūrā Global_Example2.
Tāpat mainīgo “j”, kas deklarēts apakšprocedūrā Global_Example2, nevar izmantot apakšprocedūrā Global_Example1, lai gan abas apakšprocedūras atrodas vienā modulī.
Kā pasludināt globālo mainīgo VBA?
Šie ir veidi, kā deklarēt globālo mainīgo programmā Excel VBA.
# 1 - moduļa mainīgos var izmantot jebkurā tā paša moduļa apakšprocedūrā
Kā redzējām, nevienā no moduļiem nevaram izmantot apakšprocedūras mainīgos. Lai tie būtu pieejami visām tā paša moduļa apakšprocedūrām, mums ir jādeklarē mainīgie moduļa augšdaļā.

Iepriekš minētajā attēlā mainīgo esmu deklarējis tikai moduļa sākumā. Es esmu izteicis mainīgo “MyNumber” kā veselu skaitli 1. modulī .
Kad mainīgais ir deklarēts moduļa augšdaļā, mēs varam izmantot to pašu mainīgo visām pārējām tā paša moduļa apakšprocedūrām. Šajā gadījumā mēs varam izmantot mainīgo “MyNumber” visām 1. moduļa apakšprocedūrām .

Problēma ir tāda, ka mēs tos nevaram izmantot nevienā citā modulī. Šajā gadījumā mainīgo “MyNumber”, kas deklarēts 1. modulī, nevar izmantot 2. modulī.

# 2 - Globālos mainīgos var izmantot jebkurā apakšprocedūrā un arī jebkurā modulī
Tagad mēs esam redzējuši divu veidu mainīgo deklarēšanu un to apjomu, lietojot. Aizraujoši ir tas, ka mēs varam deklarēt mainīgo jebkurā no moduļiem un izmantot to visām apakšprocedūrām visos tā paša VBA projekta moduļos.
Lai mainīgais būtu pieejams visām apakšprocedūrām visos moduļos, mums mainīgais maināms moduļa augšdaļā, nevis izmantojot vārdu “Dim”, bet izmantojot nosaukumu “Public” vai “Global”.

Iepriekš redzamajā attēlā redzams, ka mainīgā mainīšanai esmu lietojis vārdu “Publisks” , nevis mūsu veterānvārdu “Dim”.
Iepriekš redzamajā ekrānuzņēmumā es esmu deklarējis mainīgo 1. modulī. Man ir vēl divi moduļi ar nosaukumu Module 2 & Module 3.
Tā kā mainīgo esmu deklarējis, izmantojot moduļa augšpusē esošo vārdu “Publisks”, tagad šiem mainīgajiem varu piekļūt jebkurā apakšprocedūrā, izmantojot tās pašas darbgrāmatas jebkuru moduli.
Mainīgā deklarēšanai varam izmantot ne tikai “Public”, bet arī vārdu “Global”.

Globālie un publiskie ir divi atslēgvārdi, lai deklarētu mainīgo un padarītu tos pieejamus VBA visos moduļos.
Atceramās lietas
- Kad Excel makro darbojas ar globālā mainīgā vērtību, mainīgais ir vienāds visās apakšprocedūrās.
- Labāk ir uzturēt noteiktu moduli, lai deklarētu globālos mainīgos VBA un visi mainīgie būtu vienā modulī.
- Vienīgais veids, kā mēs varam atiestatīt mainīgā lielumu, ir makro koda atiestatīšana, nospiežot apturēšanas pogu.