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 hands-on dem måste vi förstå omfattningen av dessa variabler. Ofta deklarerar vi variablerna för varje makro i underprocessen varje gång. Men genom att förklara en variabel kan vi använda den i alla makron i samma modul och 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 underrutinen i VBA med hjälp av ordet "Dim."

Titta på bilden ovan. Jag har förklarat variabeln "k" som heltal i underproceduren Global_Exempel1.
Antag att vi använder den här variabeln 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 någon annan modul.

Som visas i bilden ovan kan variabeln "k", som deklareras i underproceduren 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?
Följande är 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 underprocedurvariablerna 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 bara deklarerat variabeln i början av modulen. Jag har uttryckt 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 det här fallet 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 spännande är att vi kan deklarera variabeln i någon av modulerna och använda den 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 med ordet "Dim" utan med namnet "Public" eller "Global".

I ovanstående bild 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 med 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 variabels värde är variabeln densamma över 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.