Variabel Scope


Variable Scope

I VBA, er det tre forskjellige scopes av variabler: prosedyre nivå, modul nivå og offentlig nivå. Hver omfang avgjør stedet der variabelen er synlig.


Prosedyre nivå

Når du deklarerer en variabel inne i en subrutine eller en funksjon, det vil bare være synlig i de subrutine /funksjon . Når prosedyren slutt frigjør VBA minnet og den variable er ikke lenger synlig.


Eksempel 1:
Sub procedureLevel1 () Dim myVar Som IntegermyVar = 5Avslutt SubSub procedureLevel2 () Dim myVar Som DoublemyVar = 5.5End Sub

I procedureLevel1
subrutine , myVar
variabel vil kun være synlig inne at subrutinen og vil bli behandlet som Integer.

I procedureLevel2, myVar
vil bli behandlet som Double, og vil bare være synlig inne at subrutinen.


Module nivå

Hvis du ønsker å opprette variabelen og bruke det inne flere prosedyrer i samme modul, må du deklarere den på modulnivå, i begynnelsen av koden din, før første gangs bruk i en prosedyre


Eksempel 2:.
Dim myVar Som IntegermyVar = 4Sub moduleLevel1 () myVar = 5Avslutt SubSub moduleLevel2 () myVar = 6End Sub

I begynnelsen av koden er det myVar
variabel , etter erklært som Integer. Denne variable er synlig inne i modulen. Det betyr at variabelen i moduleLevel1 Hotell og moduleLevel2
er den samme variabel.


FORSIKTIG

Du kan ikke tilordne en verdi til en variabel på dette nivået. Du må gjøre det inne prosedyrer.


Offentlig nivå

På dette nivået variabler vil være synlig for alle prosedyrer, selv de som er tilstede inne i andre moduler i samme arbeidsbok. For å opprette en slik variabel du trenger å erklære det på samme måte som du gjorde på modulnivå, men denne gangen legger allmenn ord i stedet for Dim.
Offentlig myVar As Integer



Previous: