Excel VBA offentlig variabel

Variabel er en viktig del av et programmeringsliv. Hver gang en programmerer koder lager han et sett med variabler. En variabel kan betraktes som en kupong som vi ofte bruker på nettbaserte shoppingnettsteder som Flipkart, Amazon osv. Som kupong gir deg muligheten til å forhåndsdefinere en viss rabatt på visse produkter. Det samme er tilfelle med en variabel. En variabel kan grammatisk defineres som en plassholder som reserverer noe minne i systemet med et bestemt navn. Den minneplassen kan deretter brukes når som helst med samme navn.

En VBA-variabel anses som en offentlig variabel i to tilfeller. Når -

  • Den kan brukes sammen med alle kodene i en modul.
  • Den kan brukes langs alle innenfor alle kodene for forskjellige moduler.

I lekmannsbetegnelser blir en variabel betraktet som en offentlig variabel når den kan brukes i hvilken som helst kode og i hvilken som helst modul. I denne artikkelen er vi i ferd med å se hvordan en variabel kan defineres. Hvordan det kan defineres offentlig innenfor VBA.

Før vi starter konseptet med VBA Public Variable, må vi forstå at variablene som brukes i en delprosedyre ikke kan brukes i den andre delprosedyren (det er der vi begynte å føle behovet for å ha en offentlig variabel som kan brukes på tvers av en hvilken som helst modul, hvilken som helst underprosedyre).

Anta at vi oppretter en delprosedyre i en VBA og definerer en ny variabel der ved bruk av Dim-setningen.

I denne koden er var1 variabelen definert under underprosedyre Ex_Var .

Nå vil jeg definere en ny delprosedyre, og ironi er, jeg kan ikke bruke tidligere definert var1 i denne delprosedyren. Se skjermdumpen nedenfor, der jeg prøver å tildele verdi 10 til var1 under forskjellige underprosedyrer. Se feilmeldingen også etter at vi kjører koden.

Ved å deklarere variabler under delprosedyrer, begrenser vi dem til å brukes av den delprosedyren. Det er en stor ulempe ved å erklære en variabel i en delprosedyre.

Dette fører til den nye teorien, som inkluderer variabel deklarasjon utenfor delprosedyrene. Dette vil hjelpe programmereren til å bruke de definerte variablene mye med forskjellige underprosesser.

Hvordan erklære offentlige variabler i VBA?

La oss se på noen få eksempler for å erklære offentlige variabler i VBA.

Du kan laste ned denne VBA offentlige variabler Excel-mal her - VBA offentlige variabler Excel mal

Eksempel 1 - Definere en variabel offentlig i en modul

Anta at vi ønsker å definere en variabel som kan nås offentlig på tvers av alle kodene i en enkelt modul. Vi kan gjøre det. Følg trinnene nedenfor:

Trinn 1: Åpne Visual Basic Editor (VBE) ved å trykke på Alt + F11 eller klikke på Visual Basic-knappen under Utviklere-fanen i Excel. Velg Sett inn fanen, naviger til moduler og klikk på den. Den vil legge til en ny modul i VBE å jobbe med.

Trinn 2: Legg til Option Explicit-kommandoen i begynnelsen av VBA-koden i den nyopprettede modulen (før du oppretter noen variabel). Option Explicit hjelper deg hvis det er noen skrivefeil mens du bruker den definerte variabelen. Hvis den brukte variabelen ikke er definert i systemet, kaster dette alternativet en feilmelding som sier at variabelen ikke er definert.

Kode:

 Alternativ eksplisitt 

Trinn 3: Bruk en Dim-setning for å lage en ny variabel som heter my_name med datatype som streng.

Kode:

 Alternativ Eksplisitt Dim my_name As String 

Hvis du kan være oppmerksom, har vi definert denne variabelen eksplisitt. Dette betyr at det ikke er en del av spesifikk delprosedyre. Noe som automatisk gjør denne variabelen tilgjengelig for alle kodene i modulen som er opprettet (Module1). Dette kalles som å definere en variabel offentlig innenfor en modul. Denne variabelen kan brukes hvor som helst på tvers av flere underprosedyrer i samme modul.

Anta at koden gitt nedenfor, jeg har tildelt verdi til variabelen mitt navn som "Lalit Salunkhe".

Kode:

 Alternativ Eksplisitt Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mitt navn er:" & my_name End Sub 

Hvis jeg kjører denne koden, vil jeg se en meldingsboks som vist på skjermdumpen nedenfor:

Vi kan også bruke denne variabelen i forskjellige sub-proc innen samme modul. Se skjermbildet gitt nedenfor:

Kode:

 Alternativ Eksplisitt Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mitt navn er:" & my_name End Sub Sub Ex_2 () Dim my_age Som heltall my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mitt navn er: "& my_name &"; Min alder er: "& my_age End Sub 

Se Ex_2 sub-proc. Den har en ny variabel definert my_age. Jeg har brukt mitt navn for å legge til navnet mitt og my_age for å legge til gjeldende alder for meg. Du kan se at mitt navn fortsatt er tilgjengelig i den andre delprosedyren. Når jeg kjører denne koden, kan vi få utdataene som en meldingskasse vist nedenfor:

Slik kan vi definere en variabel offentlig innenfor en modul.

Eksempel 2 - Definer en variabel offentlig i alle modulene

For å oppnå denne bragden, må du bruke nøkkelordene som offentlige eller globale i stedet for Dim som setter variabelen som offentlig for alle modulene uansett hvor du jobber.

Trinn 1: Lag en ny modul. Gå til kategorien Sett inn, klikk på Modul for å legge til en ny modul under VBE.

Trinn 2: Legg til alternativ eksplisitt i modulen.

Kode:

 Alternativ eksplisitt 

Trinn 3: Definer en ny variabel som heter var1 og var2 begge som et heltall. Men denne gangen ved å bruke Offentlig uttalelse i stedet for Dim (som vi tidligere har brukt).

Kode:

 Alternativ Eksplisitt Offentlig var1 Som heltal Offentlig var2 Som heltall 

Trinn 4: Nå kan disse to variablene brukes på tvers av flere moduler hvis de opprettes under samme VBE. Se eksemplet gitt nedenfor:

Kode:

 Alternativ Eksplisitt Offentlig var1 Som Heltall Offentlig var2 Som Heltall Under Eks_3 () var1 = 10 var2 = 100 MsgBox "Verdi for var1 er:" & var1 & Chr (13) & "Verdi for var2 er:" & var2 Slutt Sub 

Vi har tildelt verdiene til begge variablene ved hjelp av en MsgBox-funksjon, og prøver å vise verdier for disse to variablene.

Trinn 5: Kjør koden ved å trykke på F5-tasten eller ved å klikke på Spill-knappen, du kan se en utgang som vist nedenfor:

Trinn 6: Vi vil bruke de samme variablene under modul1 som vi har brukt i det første eksemplet og prøve å finne ut om variablene er tilgjengelige der eller ikke.

Kode:

 Alternativ Eksplisitt Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mitt navn er:" & my_name End Sub Sub Ex_2 () Dim my_age Som heltall my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mitt navn er: "& my_name &"; Min alder er: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Verdi for var1 er: "& var1 & Chr (13) &" Verdi for var2 er: "& var2 Slutt sub 

Hvis du kunne se skjermdumpen over, har vi brukt det samme settet med variabler definert under Module2 og har verdier som henholdsvis 1000 og 999. Vi bruker MsgBox-funksjonen for å presentere verdiene til disse to variablene. Kjør koden, og du kan se utdataene som nedenfor:

Slik kan en variabel brukes offentlig i modulen og på tvers av modulene.

Ting å huske

  • Det er alltid foretrukket å definere variablene eksplisitt i VBA. Slik at de ikke er begrenset til delprosedyren de er definert i.
  • Du kan tilordne offentlig variabel på to måter: en i en modul som bruker konvensjonell Dim-setning og den andre på tvers av alle modulene som er tilstede i VBE ved bruk av enten Public eller Global statement.

Anbefalte artikler

Dette er en guide til VBA Public Variable. Her diskuterer vi hvordan du kan erklære Public Variable i Excel ved å bruke VBA-kode i Excel sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

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

Kategori: