VBA globale variabler - Hvordan erklære Global Variable i VBA?

Innholdsfortegnelse

Noen funksjoner er definert i en funksjon og brukes i funksjonene, og noen variabler er definert utenfor funksjonene og brukes av alle funksjonene, og slike variabler brukes som globale variabler, for eksempel er variablene som er deklarert under underfunksjonen kjent som globale variabler.

Global variabel i Excel VBA

Å erklære en variabel virker ganske enkel, men for å ha god hands-on dem, må vi forstå omfanget av disse variablene. Ofte erklærer vi variablene for hver makro i underprosedyren hver gang. Men ved å erklære en variabel, kan vi bruke den i alle makroene i den samme modulen og de andre modulene i det nåværende VBA-prosjektet. I denne artikkelen vil vi vise deg hvordan du kan erklære globale variabler i Excel VBA.

Hva er globale variabler i Excel VBA?

VBA Global Variables er variabler som blir erklært før starten på en hvilken som helst makro i modulen. Når variablene blir deklarert ved å bruke enten "Offentlig" eller "Global", blir den "Global variabel."

Underprosedyrevariabler kan ikke brukes hvor som helst.

Vi erklærer vanligvis variabelen inne i underrutinen i VBA ved å bruke ordet "Dim."

Se på bildet ovenfor. Jeg har erklært variabelen “k” som heltall inne i underprosedyren Global_Example1.

Anta at vi bruker denne variabelen i denne underprosedyren når som helst. Imidlertid kan jeg ikke bruke denne variabelen i en annen underprosedyre verken i samme klassemodul i VBA eller en annen modul.

Som vist i bildet ovenfor, kan variabelen “k”, erklært i underprosedyren Global_Example1, ikke brukes i underprosedyren Global_Example2.

Tilsvarende kan variabel “j” erklært i underprosedyren Global_Example2 ikke brukes i underprosedyren Global_Example1 selv om begge delprosedyrene er i samme modul.

Hvordan erklære Global Variable i VBA?

Følgende er måtene å erklære en global variabel i excel VBA.

# 1 - Modulvariabler kan brukes i hvilken som helst underprosedyre i samme modul

Som vi har sett, kan vi ikke bruke underprosedyrvariablene i noen av modulene. For å gjøre dem tilgjengelige for alle underprosedyrene i samme modul, må vi deklarere variablene øverst i modulen.

I bildet ovenfor har jeg kun erklært variabelen ved starten av modulen. Jeg har uttrykt variabelen “MyNumber” som Heltall i modul 1 .

Når variabelen er deklarert øverst i modulen, kan vi bruke den samme variabelen for alle de andre underprosedyrene i den samme modulen. I dette tilfellet kan vi bruke variabelen “MyNumber” for alle underprosedyrene i modul 1.

Problemet er at vi ikke kan bruke dem i noen av de andre modulene. I dette tilfellet kan variabelen “MyNumber”, erklært i modul 1, ikke brukes i modul 2.

# 2 - Globale variabler kan brukes i hvilken som helst underprosedyre og også i hvilken som helst modul

Nå har vi sett to typer variabelerklæring og omfanget av dem mens du bruker. Det spennende er at vi kan erklære variabelen i en hvilken som helst av modulene og bruke den til alle underprosedyrene i alle modulene i det samme VBA-prosjektet.

For å gjøre variabelen tilgjengelig for alle Sub-prosedyrer på tvers av alle modulene, må vi erklære variabelen øverst på modulen ikke ved å bruke ordet "Dim", men ved å bruke navnet "Public" eller "Global".

I bildet ovenfor kan du se at jeg har brukt ordet "Offentlig" for å erklære variabelen i stedet for vårt veteranord "Dim."

I skjermbildet ovenfor har jeg erklært variabelen i modul 1. Jeg har to moduler til, kalt modul 2 og modul 3.

Siden jeg har erklært variabelen ved å bruke ordet "Offentlig" øverst i modulen, kan jeg nå få tilgang til disse variablene i hvilken som helst underprosedyre på tvers av alle moduler i samme arbeidsbok.

Ikke bare "Offentlig", men vi kan også bruke ordet "Global" for å erklære variabelen.

Global & Public er de to nøkkelordene for å erklære variabelen og gjøre dem tilgjengelige på tvers av moduler i VBA.

Ting å huske

  • Når excel-makroen kjører med en global variabels verdi, er variabelen den samme i alle underprosedyrene.
  • Det er bedre å opprettholde en bestemt modul for å erklære globale variabler i VBA og ha alle variablene i en modul.
  • Den eneste måten vi kan tilbakestille verdien til variabelen er ved å tilbakestille makrokoden ved å trykke på stoppknappen.

Interessante artikler...