VBA globala variabler

Vissa funktioner definieras inuti en funktion och används inom funktionerna och vissa variabler definieras utanför funktionerna och används av alla funktioner och sådana variabler används som globala variabler, till exempel är de variabler som deklarerats under underfunktionen kända som globala variabler.

Global variabel i Excel VBA

Att förklara en variabel verkar ganska enkelt men för att ha bra händer på dem måste vi förstå omfattningen av dessa variabler. Ofta deklarerar vi variablerna för varje makro i delproceduren varje gång. Men genom att deklarera en variabel kan vi använda den i alla makron i samma modul liksom i de andra modulerna i det aktuella VBA-projektet. I den här artikeln visar vi dig hur du deklarerar globala variabler i Excel VBA.

Vad är globala variabler i Excel VBA?

VBA globala variabler är variabler som deklareras före starten av något makro i modulen. När variablerna deklareras med antingen ”Public” eller ”Global” blir det ”Global Variable”.

Subprocedurvariabler kan inte användas någonstans

Vi deklarerar vanligtvis variabeln inuti subrutinen i vba med hjälp av ordet "Dim".

Titta på bilden ovan. Jag har deklarerat variabeln "k" som heltal i delproceduren Global_Exempel1.

Om vi ​​använder denna variabel i denna underprocedur när som helst. Jag kan dock inte använda den här variabeln i en annan delprocedur, varken i samma klassmodul i VBA eller i en annan modul.

Som visas i bilden ovan kan variabeln “k” som deklareras i delproceduren Global_Exempel1 inte användas i underproceduren Global_Exempel2.

På samma sätt kan variabeln “j” som deklareras i underproceduren Global_Exempel2 inte användas i underproceduren Global_Exempel1 även om båda delprocedurerna finns i samma modul.

Hur förklarar jag global variabel i VBA?

Nedan följer sätten att deklarera en global variabel i excel VBA.

# 1 - Modulvariabler kan användas i valfri delprocedur i samma modul

Som vi har sett kan vi inte använda subprocedurvariablerna i någon av modulerna. För att göra dem tillgängliga för alla subprocedurer i samma modul måste vi deklarera variablerna högst upp i modulen.

I bilden ovan har jag endast deklarerat variabeln i början av modulen. Jag har förklarat variabeln "MyNumber" som heltal i modul 1 .

När variabeln deklareras högst upp i modulen kan vi använda samma variabel för alla andra subprocedurer i samma modul, i det här fallet kan vi använda variabeln "MyNumber" för alla subprocedurer i modul 1.

Problemet är att vi inte kan använda dem i någon av de andra modulerna. I detta fall kan variabeln “MyNumber” som deklareras i modul 1 inte användas i modul 2.

 # 2 - Globala variabler kan användas i valfri delprocedur och även i valfri modul

Nu har vi sett två typer av variabeldeklaration och omfattningen av dem under användning. Det intressanta är att vi kan deklarera variabeln i någon av modulerna och använda för alla subprocedurer i alla moduler i samma VBA-projekt.

För att göra variabeln tillgänglig för alla Sub-procedurer i alla moduler, måste vi deklarera variabeln högst upp i modulen inte genom att använda ordet "Dim" utan genom att använda ordet "Public" eller "Global".

I bilden ovan kan du se att jag har använt ordet "Public" för att deklarera variabeln istället för vårt veteranord "Dim".

I ovanstående skärmdump har jag förklarat variabeln i modul 1. Jag har ytterligare två moduler som heter modul 2 och modul 3.

Eftersom jag har deklarerat variabeln genom att använda ordet "Offentlig" högst upp i modulen kan jag nu få tillgång till dessa variabler i valfri delprocedur i alla moduler i samma arbetsbok.

Inte bara "Public", men vi kan också använda ordet "Global" för att deklarera variabeln.

Global & Public är de två nyckelorden för att deklarera variabeln och göra dem tillgängliga för alla moduler i VBA.

Saker att komma ihåg

  • När excel-makrot körs med en global variabel är värdet på variabeln detsamma i alla subprocedurer.
  • Det är bättre att underhålla en viss modul för att deklarera globala variabler i VBA och ha alla variabler i en modul.
  • Det enda sättet vi kan återställa variabelns värde är att återställa makrokoden genom att trycka på stoppknappen.