Excel VBA offentlig variabel

Variabel er en vigtig del af programmørernes liv. Hver gang en programmerer koder, opretter han et sæt af variabler. En variabel kan betragtes som en voucher, som vi ofte bruger på online shopping-steder, såsom Flipkart, Amazon, osv., Som voucher giver dig mulighed for at få en bestemt rabat på bestemte produkter foruddefineres. Det samme er tilfældet med en variabel. En variabel kan grammatisk defineres som en pladsholder, der reserverer noget hukommelse i systemet med et bestemt navn. Denne hukommelsesplads kan derefter udnyttes når som helst med samme navn.

En VBA-variabel betragtes som en offentlig variabel under to omstændigheder. Hvornår -

  • Det kan bruges sammen med alle koder i et modul.
  • Det kan bruges langs alle inden for alle koder til forskellige moduler.

I lægmandsbetegnelser betragtes en variabel som en offentlig variabel, når den kan bruges i en hvilken som helst kode og i ethvert modul. I denne artikel skal vi se, hvordan en variabel kan defineres. Hvordan det kan defineres offentligt inden for VBA.

Før vi starter konceptet med VBA Public Variable, er vi nødt til at forstå, at variablerne, der bruges i en subprocedure, ikke kan bruges i den anden subprocedure (det er her vi begyndte at føle behovet for at have en offentlig variabel som kan bruges på tværs af ethvert modul, enhver underprocedure).

Antag, at vi opretter en underprocedure i en VBA og definerer en ny variabel der ved hjælp af Dim-sætningen.

I denne kode er var1 den variabel, der er defineret under underproceduren Ex_Var .

Nu vil jeg definere en ny underprocedure, og ironi er, jeg kan ikke bruge tidligere defineret var1 i denne underprocedure. Se skærmbilledet nedenfor, hvor jeg forsøger at tildele værdi 10 til var1 under forskellige underprocedurer. Se også fejlmeddelelsen, når vi kører koden.

Ved at erklære variabler under underprocedurer, begrænser vi dem til kun at blive brugt af den underprocedure. Det er en stor ulempe ved at erklære en variabel inden for en underprocedure.

Dette fører til den nye teori, der inkluderer variabel deklaration uden for underprocedurerne. Dette vil hjælpe programmereren til at bruge de definerede variabler vidt med forskellige underprocedurer.

Hvordan skal man erklære offentlige variabler i VBA?

Lad os se på et par eksempler til at erklære offentlige variabler i VBA.

Du kan downloade denne VBA offentlige variabler Excel-skabelon her - VBA offentlige variabler Excel-skabelon

Eksempel 1 - Definition af en variabel offentligt inden for et modul

Lad os antage, at vi ønsker at definere en variabel, der kan åbnes offentligt på tværs af alle koder i et enkelt modul. Vi kan gøre det. Følg nedenstående trin:

Trin 1: Åbn din Visual Basic Editor (VBE) ved at trykke på Alt + F11 eller klikke på Visual Basic-knappen under fanen Udviklere i Excel. Vælg fanen Indsæt, naviger til Moduler og klik på den. Det vil tilføje et nyt modul i VBE til at arbejde på.

Trin 2: I det nyoprettede modul skal du tilføje Option Explicit-kommandoen i starten af ​​din VBA-kode (før du opretter nogen variabel). Option Explicit hjælper dig, hvis der er nogen skrivefejl, mens du bruger den definerede variabel. Hvis den anvendte variabel ikke er defineret i systemet, kaster denne mulighed en fejlmeddelelse, der siger, at variablen ikke er defineret.

Kode:

 Option eksplicit 

Trin 3: Brug en Dim-sætning til at oprette en ny variabel ved navn my_name med datatype som streng.

Kode:

 Mulighed eksplicit Dim my_name som streng 

Hvis du kunne være opmærksom, har vi defineret denne variabel eksplicit. Betydning, at det ikke er en del af specifik subprocedure. Hvilket automatisk gør denne variabel tilgængelig for alle koder i det oprettede modul (Modul1). Dette kaldes som at definere en variabel offentligt inden for et modul. Denne variabel kan bruges overalt på tværs af de flere underprocedurer inden for det samme modul.

Lad os antage, at koden, der er angivet nedenfor, har tildelt værdien til variablen mit navn som "Lalit Salunkhe".

Kode:

 Option Eksplicit Dim my_name Som streng Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mit navn er:" & my_name End Sub 

Hvis jeg kører denne kode, ser jeg en meddelelsesboks som vist på skærmbilledet nedenfor:

Vi kan også bruge denne variabel i forskellige sub-proc inden for det samme modul. Se skærmbilledet nedenfor:

Kode:

 Option Eksplicit Dim my_name Som String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mit navn er:" & my_name End Sub Sub Ex_2 () Dim my_age Som heltal my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mit navn er: "& my_name &"; Min alder er: "& my_age End Sub 

Se Ex_2 sub-proc. Det har en ny variabel defineret my_age. Jeg har brugt my_name til at tilføje mit navn og my_age til at tilføje den nuværende alder på min. Du kan se, at my_name stadig er tilgængelig inden for den anden underprocedure. Når jeg har kørt denne kode, kan vi få output som en meddelelsesboks vist nedenfor:

Sådan kan vi definere en variabel offentligt inden for et modul.

Eksempel 2 - Definer en variabel offentligt på tværs af alle moduler

For at opnå dette resultat skal du bruge nøgleordene som Offentlige eller Globale i stedet for Dim, der indstiller variablen som offentlig for alt modul, uanset hvor du arbejder på tværs.

Trin 1: Opret et nyt modul. Gå til fanen Indsæt, klik på Modul for at tilføje et nyt modul under VBE.

Trin 2: Tilføj mulighed eksplicit inden for modulet.

Kode:

 Option eksplicit 

Trin 3: Definer en ny variabel ved navn var1 og var2 begge som et type heltal. Men denne gang ved hjælp af offentlig erklæring i stedet for Dim (som vi tidligere har brugt).

Kode:

 Option Eksplicit Offentlig var1 Som heltal Offentlig var2 Som heltal 

Trin 4: Nu kan disse to variabler bruges på tværs af flere moduler, hvis de oprettes under den samme VBE. Se eksemplet nedenfor:

Kode:

 Option Eksplicit Offentlig var1 Som heltal Offentlig var2 Som heltal Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "Værdi for var1 er:" & var1 & Chr (13) & "Værdi for var2 er:" & var2 End Sub 

Vi har tildelt værdierne til begge variabler ved hjælp af en MsgBox-funktion, hvor vi prøver at vise værdier for disse to variabler.

Trin 5: Kør koden ved at trykke på F5-tasten eller ved at klikke på Play-knappen, du kan se et output som vist nedenfor:

Trin 6: Vi vil bruge de samme variabler under Module1, som vi har brugt i det første eksempel og forsøge at finde ud af, om variablerne er tilgængelige der eller ej.

Kode:

 Option Eksplicit Dim my_name Som String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mit navn er:" & my_name End Sub Sub Ex_2 () Dim my_age Som heltal my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mit navn er: "& my_name &"; Min alder er: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Værdi for var1 er: "& var1 & Chr (13) &" Værdi for var2 er: "& var2 Afslut under 

Hvis du kunne se skærmbillede ovenfor, har vi brugt det samme sæt variabler, der er defineret under Module2 og har værdier som henholdsvis 1000 og 999. Vi bruger MsgBox-funktionen til at præsentere værdierne for henholdsvis disse to variabler. Kør koden, og du kan se output som nedenfor:

Sådan kan en variabel bruges offentligt i modulet og på tværs af modulerne.

Ting at huske

  • Det foretrækkes altid at definere variablerne eksplicit i VBA. Så de er ikke begrænset til den underprocedure, de er defineret inden for.
  • Du kan tildele offentlig variabel på to måder: den ene inden for et modul ved hjælp af konventionel Dim-sætning og den anden på tværs af alle modulerne, der findes i VBE ved hjælp af enten den offentlige eller den globale sætning.

Anbefalede artikler

Dette er en guide til VBA Public Variable. Her diskuterer vi, hvordan man erklærer offentlig variabel i Excel ved hjælp af VBA-kode i excel sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. VBA globale variabler
  2. En variabel datatabel i Excel
  3. VBA FileSystemObject (FSO)
  4. To variabel datatabel i Excel

Kategori: