Excel VBA Public Variable

Variabel är en viktig del av programmerarens liv. Varje gång en programmerare kodar skapar han någon uppsättning variabler. En variabel kan betraktas som en kupong som vi ofta använder på webbshopsajter som Flipkart, Amazon osv. Som kupong kan du få en viss rabatt på vissa fördefinierade produkter. Samma är fallet med en variabel. En variabel kan grammatiskt definieras som en platshållare som reserverar lite minne i systemet med ett visst namn. Det minnesutrymmet kan sedan användas när som helst med samma namn.

En VBA-variabel betraktas som en offentlig variabel under två omständigheter. När -

  • Det kan användas tillsammans med alla koder i en modul.
  • Det kan användas tillsammans inom alla koder för olika moduler.

När det gäller lekmän betraktas en variabel som en offentlig variabel när den kan användas i valfri kod och i valfri modul. I den här artikeln ska vi se hur en variabel kan definieras. Hur det kan definieras offentligt inom VBA.

Innan vi börjar med VBA Public Variable måste vi förstå att variablerna som används i en delprocedur inte kan användas i den andra delproceduren (det är där vi började känna behovet av att ha en offentlig variabel som kan användas över alla moduler, vilken som helst underprocedur).

Anta att vi skapar en delprocedur i en VBA och definierar en ny variabel där med Dim-sats.

I den här koden är var1 den variabel som definieras under delproceduren Ex_Var .

Nu kommer jag att definiera en ny delprocedur och ironi är att jag inte kan använda tidigare definierade var1 i denna delprocedur. Se skärmdumpen nedan, där jag försöker tilldela värde 10 till var1 under olika delprocedurer. Se felmeddelandet också efter att vi har kört koden.

Genom att deklarera variabler under delprocedurer begränsar vi dem till att endast användas av den delproceduren. Det är en stor nackdel med att deklarera en variabel inom en delprocedur.

Detta leder till den nya teorin, som inkluderar den variabla deklarationen utanför delprocedurerna. Detta hjälper programmeraren att använda de definierade variablerna i stor utsträckning med olika delprocedurer.

Hur förklarar man offentliga variabler i VBA?

Låt oss titta på några exempel för att förklara offentliga variabler i VBA.

Du kan ladda ner denna VBA-offentliga variabler Excel-mall här - VBA-offentliga variabler Excel-mall

Exempel 1 - Definiera en variabel offentligt inom en modul

Anta att vi vill definiera en variabel som kan nås offentligt över alla koder inom en enda modul. Vi kan göra det. Följ stegen nedan:

Steg 1: Öppna din Visual Basic Editor (VBE) genom att slå Alt + F11 eller klicka på Visual Basic-knappen under fliken Utvecklare i Excel. Välj Infoga-flik, navigera till Moduler och klicka på den. Den kommer att lägga till en ny modul inom VBE att arbeta med.

Steg 2: Lägg till Option Explicit-kommandot i början av din VBA-kod i den nyskapade modulen (innan du skapar någon variabel). Option Explicit hjälper dig om det finns någon typfel när du använder den definierade variabeln. Om den använda variabeln inte är definierad i systemet, kastar detta alternativ ett felmeddelande som säger att variabeln inte är definierad.

Koda:

 Alternativ Explicit 

Steg 3: Använd en Dim-sats för att skapa en ny variabel med namnet my_name med datatyp som String.

Koda:

 Alternativ Explicit Dim my_name As String 

Om du kunde vara uppmärksam, har vi definierat denna variabel uttryckligen. Vilket innebär att det inte är en del av en specifik delprocedur. Som automatiskt gör denna variabel tillgänglig för alla koder inom modulen som skapats (Modul1). Detta kallas att definiera en variabel offentligt inom en modul. Denna variabel kan användas var som helst över flera subprocedurer inom samma modul.

Anta att koden som anges nedan, jag har tilldelat värdet till variabeln mittnamn som "Lalit Salunkhe".

Koda:

 Alternativ Explicit Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mitt namn är:" & my_name End Sub 

Om jag kör den här koden ser jag en meddelanderuta som visas på skärmdumpen nedan:

Vi kan också använda denna variabel i olika sub-proc inom samma modul. Se skärmdumpen nedan:

Koda:

 Alternativ Explicit Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mitt namn är:" & my_name End Sub Sub Ex_2 () Dim my_age Som heltal my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mitt namn är: "& my_name &"; Min ålder är: "& my_age End Sub 

Se Ex-2 sub-proc. Den har en ny variabel definierad my_age. Jag har använt mitt namn för att lägga till mitt namn och my_age för att lägga till min nuvarande ålder. Du kan se mitt namn är fortfarande tillgängligt inom den andra delproceduren. När jag har kört den här koden kan vi få utdata som en meddelanderuta som visas nedan:

Så här kan vi definiera en variabel offentligt inom en modul.

Exempel 2 - Definiera en variabel offentligt över alla moduler

För att uppnå denna prestation måste du använda nyckelorden som offentliga eller globala istället för Dim som sätter variabeln som offentlig för alla moduler var du än arbetar.

Steg 1: Skapa en ny modul. Gå till fliken Infoga, klicka på Modul för att lägga till en ny modul under VBE.

Steg 2: Lägg till alternativ som är tydligt i modulen.

Koda:

 Alternativ Explicit 

Steg 3: Definiera en ny variabel med namnet var1 och var2 båda som ett typ heltal. Men den här gången med hjälp av offentligt uttalande istället för Dim (som vi tidigare använt).

Koda:

 Alternativ Explicit Public var1 Som heltal Public var2 Som heltal 

Steg 4: Nu kan dessa två variabler användas över flera moduler om de skapas under samma VBE. Se exemplet nedan:

Koda:

 Alternativ Explicit Public var1 Som heltal Offentlig var2 Som heltal Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "Värde för var1 är:" & var1 & Chr (13) & "Värde för var2 är:" & var2 End Sub 

Vi har tilldelat värdena till båda variablerna med hjälp av en MsgBox-funktion och försöker visa värden för dessa två variabler.

Steg 5: Kör koden genom att trycka på F5-tangenten eller genom att klicka på Spela-knappen kan du se en utgång som visas nedan:

Steg 6: Vi kommer att använda samma variabler under modul1 som vi har använt i det första exemplet och försöka ta reda på om variablerna är tillgängliga där eller inte.

Koda:

 Alternativ Explicit Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mitt namn är:" & my_name End Sub Sub Ex_2 () Dim my_age Som heltal my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mitt namn är: "& my_name &"; Min ålder är: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Värde för var1 är: "& var1 & Chr (13) &" Värde för var2 är: "& var2 Avsluta under 

Om du kunde se skärmdumpen ovan har vi använt samma uppsättning variabler som definierats under Modul2 och har värden som 1000 respektive 999. Vi använder MsgBox-funktionen för att presentera värdena på dessa två variabler. Kör koden så kan du se utgången enligt nedan:

Så här kan en variabel användas offentligt i modulen och över modulerna.

Saker att komma ihåg

  • Det är alltid att föredra att definiera variablerna uttryckligen i VBA. Så att de inte begränsas till den delprocedur de definieras inom.
  • Du kan tilldela allmän variabel på två sätt: ett inom en modul med konventionellt Dim-uttalande och ett på andra sätt över alla moduler som finns i VBE med antingen public- eller global-sats.

Rekommenderade artiklar

Detta är en guide till VBA Public Variable. Här diskuterar vi hur man deklarerar Public Variable i Excel med hjälp av VBA-kod i Excel tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA Global Variables
  2. En variabel datatabell i Excel
  3. VBA FileSystemObject (FSO)
  4. Två variabla datatabeller i Excel

Kategori: