VBA-alternativ Explicit

Excel VBA-alternativ Explicit

Variabeldeklaration är mycket viktigt i VBA, Option Explicit gör att en användare är obligatorisk att deklarera alla variabler innan de används, alla odefinierade variabler kommer att kasta ett fel medan koden körs, vi kan skriva nyckelordsalternativet uttryckligen eller vi kan aktivera det för alla koder från alternativ genom att aktivera att kräva variabeldeklaration.

I VBA handlar det om variabler. För att lagra data behöver vi variabler med en lämplig datatyp. Du kan fråga mig varför behöver du variabel när du direkt kan lägga till värdet i kalkylbladet. Detta beror främst på flera användare av arbetsboken, om den hanteras av en person kan du direkt hänvisa värdet till själva arket. Genom att deklarera variabler kan vi skapa den flexibla koden för att lagra data.

Vad är VBA Option Explicit?

Jag hoppas att du har stött på det blåkantade ordet ”Option Explicit” högst upp i din modul innan något makro startade i den modulen.

I början av att lära mig VBA förstod jag inte heller vad det var och för att vara väldigt uppriktig tänkte jag inte ens alls på detta. Inte bara för mig eller dig utan det är också detsamma för alla i början. Men vi kommer att se vikten av detta ord nu.

“Option Explicit” är vår mentor när vi deklarerar variabeln. Genom att lägga till detta ord gör den variabeldeklarationen till en obligatorisk process.

Du kan ladda ner denna VBA Option Explicit Excel-mall här - VBA Option Explicit Excel-mall

För ett exempel, se nedanstående kod för att förstå.

Koda:

 Subexempel1 () i = 25 MsgBox i End Sub 

Om jag kör den här koden får vi värdet av variabeln "I" i meddelandefältet i VBA.

Nu lägger jag till ordet ”Option Explicit” i början av VBA-koden.

Nu ska jag köra koden och se vad som händer. Om du tränar med mig, tryck på F5-tangenten för att köra koden.

Vi fick kompileringsfel och det står "Variabel ej definierad" . Vi har inte deklarerat variabeln "i" men genast har vi tilldelat värdet till 25.

Eftersom vi har lagt till ordet ”Option Explicit” tvingar det oss att deklarera variabeln obligatoriskt.

I ovanstående kod är alfabetet “i” odeklarerat, så vi har lagt till variabelkontrollordet ”Option Explicit” som hindrar oss från att använda de odeklarerade variablerna.

När du lägger till ordet ”Option Explicit” högst upp i modulen är det tillämpligt för alla makron i den specifika modulen att deklarera variablerna obligatoriskt.

Hur gör jag den variabla deklarationen obligatorisk?

Om du har lagt till variabelmentorn ”Option Explicit” manuellt i din modul när du sätter in den nya modulen får du inte den variabla mentorn som standard.

Om du tänker varje gång du behöver lägga till ordet "Option Explicit" för alla nya moduler manuellt så har du fel.

Eftersom vi kan göra detta ord obligatoriskt i alla moduler genom att göra en enkel inställning. Följ stegen nedan för att justera inställningarna.

Steg 1: Gå till Visual Basic Editor.

Steg 2: Gå till VERKTYG och klicka på Alternativ.

Steg 3: När du klickar på Alternativ ser du fönstret nedan.

Steg 4: Under det här fönstret Gå till Editor och markera alternativet "Kräv variabel deklaration" .

Steg 5: Klicka på OK för att stänga fönstret.

Från och med nu när du lägger till en ny modul infogas ordet ”Option Explicit” automatiskt som standard.

Option Explicit är din sparare

Option Explicit hjälper oss på många sätt, allt från att deklarationen av variabeln är obligatorisk kommer det att hjälpa oss fram till genomförandet. Titta på koden nedan.

Koda:

 Subexempel2 () Dim strömvärde som heltal CurentValue = 500 MsgBox CurrentValue End Sub 

I ovanstående kod har jag förklarat variabeln "CurrentValue" som ett heltal. I nästa rad har jag tilldelat värdet 500 till det. Om jag kör den här koden ska jag få 500 som resultat i en meddelandefält. Men se vad som händer.

Det står "Variabel ej definierad" och markerade andra raden.

Om vi ​​tittar noga på andra raden finns det ett litet stavfel. Mitt variabla namn är "CurrentValue" men i andra raden har jag missat en stavning, dvs "r". Det står "CurrentValue" istället för "CurrentValue". Eftersom jag har gjort den variabla deklarationen obligatorisk genom att lägga till ordet ”Option Explicit” i excel VBA har det markerat mig det skrivfel jag har gjort.

Så när vi korrigerar stavningen och kör koden får vi resultatet enligt följande.

Hälsa till den nyutnämnda variabla mentorn !!!