När det är vettigt att använda alternativet Explicit - Excel Tips

Innehållsförteckning

Det verkar som om jag har orsakat lite ångest genom åren på grund av min kontroversiella inställning att Option Explicit inte är användbart i VBA. Jag blev påmind om detta nyligen när jag gjorde en Skype-session på Excel Weekend of Brazil. Jag har skrivit en bok om Excel VBA för QUE. Den boken har översatts till portugisiska för Brasilien. Så tydligen har jag lärt de fina folket i Brasilien om Excel VBA i 15 år. Nu när jag är 15 år äldre och klokare kommer jag att erkänna att det kan finnas goda skäl att använda Option Explicit.

På Notre Dame tog jag affärskurser med stor koncentration i programmering. Genom en konstig uppsättning omständigheter tog jag varje programmeringskurs som finns tillgänglig på ND från både teknik- och handelshögskolorna. Jag lärde mig Fortran, Pascal, Assembler och COBOL. Jag älskade programmering. Dessa programmeringskurser räddade min GPA och hindrade mig från att kastas ut. Tidigare berättade våra professorer om att vi var tvungna att planera vårt program och rita flödesscheman innan vi började koda. Jag var en rebell. Jag skulle skriva programmet först och sedan rita flödesschemat efter att jag var klar.

Jag tillbringade de första 18 månaderna av min karriär med att skriva COBOL-program. Men sedan övergick jag till Finance och tillbringade tio år inom ekonomi och redovisning. Jag gjorde mest bokföringsarbete, men när jag behövde skriva lite kod visste jag nog att skriva lite kod.

Jag programmerade makron i Lotus 1-2-3 och började sedan skriva VBA-makron efter att vi bytte till Excel 1995. Jag var fortfarande upprorisk då: att förklara mina variabler i förväg verkade för mycket som att rita ett flödesschema innan jag skrev koden. Jag är aldrig en som planerar framåt. Dyk in. Börja koda. Om du behöver en ny variabel någonstans längs vägen skapar du helt enkelt variabeln.

Jag var rebell och skrev först koden och ritade flödesschemat senare. Förklarar variabler, argumenterade jag, är för formella programmerare. Om du arbetar med redovisning och helt enkelt slår ut 20 rader kod finns det ingen anledning att förklara dina variabler i förväg.

Min inställning till det har fått mig till några vänliga argument med andra Excel-experter. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

För det första har jag alltid rekommenderat att deklarera dina objektvariabler. I koden nedan förklaras WSD som ett kalkylblad och tilldelas med Set-kommandot. Om du deklarerar objektvariabeln kan du bläddra bland alla egenskaper och metoder genom att skriva variabeln följt av en punkt.

Att deklarera objektvariabler leder till den här hjälpsamma autokompletteringen

Genom att inte använda Option Explicit riskerar du stavfel. I koden nedan skapas en variabel som heter FinalRow. I nästa rad menade jag sannolikt att slinga från 2 till FinalRow, men jag skrev in variabeln fel som Fina1Row.

För decennier sedan utelämnade IBM Selectric typskrivare 1-tangenten eftersom människor skulle skriva ett gemener L istället.

Utan Option Explicit kanske någon inte förstår att skrivfelet finns där. FinalRow-variabeln kan innehålla 100. Men koden inuti slingan kommer inte att köras eftersom Fina1Row-variabeln aldrig initialiserades och innehåller noll.

För att förhindra frustration från att felsöka kod med potentiella skrivfel kan du öppna Verktyg, Alternativ i VBA-menyn. Välj rutan Kräv variabeldeklaration som visas nedan.

Markera den här rutan om du vill få in stavfel.

Alla framtida moduler kommer att börja med en rad som säger Option Explicit. Du måste lägga till nya rader längst upp i makrot som definierar variablerna FinalRow och i. Excel berättar inte om felstavningen förrän du faktiskt försöker köra makrot. De varnar dig sedan om att variabeln inte är definierad.

Det markerade ordet är felstavat.

Så det är ditt samtal. Om du inte har något emot att planera framåt och deklarera alla dina variabler, kommer du att få skyddsnätet från VBA att berätta om du har skrivit in en variabel felaktigt. För mig föredrar jag spänningen att felsöka koden en rad i taget och hitta mina skrivfel själv. Men om du inte känner för att leva farligt kan du aktivera Option Explicit.

Jag är inte riktigt säker på om mina åtgärder handlade om steg 5, 8 eller 9 av de 12 stegen. Men om någon spenderade extra tid på att felsöka sin kod på grund av ett skrivfel, är jag ledsen för att ha orsakat dig den smärtan.

Varje lördag kommer jag att diskutera en av mina dåliga vanor i Excel och diskutera varför du kanske ska göra vad jag säger istället för att göra det jag gör.

Excel-tanke på dagen

Jag har frågat mina Excel Master-vänner om deras råd om Excel. Dagens tanke att fundera på:

"Ändra inte kalkylbladutvecklare mitt i scrummet."

Jordan Goldmeier

Intressanta artiklar...