Når det giver mening at bruge eksplicit option - Excel-tip

Indholdsfortegnelse

Det ser ud til, at jeg har skabt en vis angst gennem årene på grund af min kontroversielle holdning til, at Option Explicit ikke er nyttig i VBA. Jeg blev mindet om dette for nylig, da jeg lavede en Skype-session i Excel Weekend of Brazil. Jeg har skrevet en bog om Excel VBA til QUE. Denne bog er oversat til portugisisk til det brasilianske marked. Så tilsyneladende har jeg lært de fine folk i Brasilien om Excel VBA i 15 år. Nu hvor jeg er 15 år ældre og klogere, indrømmer jeg, at der kan være gode grunde til at bruge Option Explicit.

På Notre Dame tog jeg erhvervskurser med stor koncentration i programmering. Gennem et underligt sæt omstændigheder tog jeg hvert programmeringskursus, der var tilgængeligt på ND, fra både ingeniør- og handelsskolerne. Jeg lærte Fortran, Pascal, Assembler og COBOL. Jeg elskede programmering. Disse programmeringskurser reddede min GPA og forhindrede mig i at blive kastet ud. Tilbage på dagen fortalte vores professorer os, at vi var nødt til at planlægge vores program og håndtegne flowcharts, før vi begyndte at kode. Jeg var oprør. Jeg ville skrive programmet først og derefter tegne flowchart efter jeg var færdig.

Jeg tilbragte de første 18 måneder af min karriere med at skrive COBOL-programmer. Men så gik jeg over til Finance og tilbragte ti år i Finance and Accounting. Jeg lavede for det meste regnskabsarbejde, men da jeg havde brug for at skrive en kode, vidste jeg nok til at skrive en kode.

Jeg programmerede makroer i Lotus 1-2-3 og begyndte derefter at skrive VBA-makroer, efter at vi skiftede til Excel i 1995. Jeg var stadig oprørsk på det tidspunkt: At erklære mine variabler på forhånd syntes for meget som at tegne et rutediagram, før jeg skrev koden. Jeg er aldrig en, der planlægger fremad. Dyk ind. Start kodningen. Hvis du har brug for en ny variabel et eller andet sted undervejs, skal du blot oprette variablen.

Jeg var oprør, skrev koden først og tegnede flowchart senere. Erklæring om variabler, argumenterede jeg, er for formelle programmører. Hvis du arbejder i regnskab og simpelthen slår 20 linjer kode ud, er der ingen grund til at erklære dine variabler på forhånd.

Min holdning til det har fået mig til nogle venlige argumenter med andre Excel-eksperter. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

For det første har jeg altid anbefalet at erklære dine objektvariabler. I nedenstående kode erklæres WSD som et regneark og tildeles ved hjælp af kommandoen Sæt. Hvis du erklærer objektvariablen, kan du gennemse alle egenskaber og metoder ved at skrive variablen efterfulgt af en periode.

Erklæring af objektvariabler fører til denne nyttige autofuldførelse

Ved ikke at bruge Option Explicit risikerer du stavefejl. I nedenstående kode oprettes en variabel kaldet FinalRow. I den næste linje mente jeg sandsynligvis at løkke fra 2 til FinalRow, men jeg skrev forkert variablen som Fina1Row.

For årtier siden udeladte IBM Selectric typerwriters 1-tasten, fordi folk ville skrive et lille bogstav L i stedet.

Uden eksplicit option kan nogen muligvis ikke indse, at typefeltet er der. FinalRow-variablen kan indeholde 100. Men koden inde i sløjfen udføres ikke, fordi Fina1Row-variablen aldrig blev initialiseret og vil indeholde et nul.

For at forhindre frustration fra fejlretningskode med potentielle skrivefejl kan du åbne Værktøjer, Indstillinger i VBA-menuen. Vælg feltet Kræv variabel erklæring vist nedenfor.

Marker dette felt for at hente stavefejl.

Alle fremtidige moduler starter med en linje, der siger Option Explicit. Du bliver nødt til at tilføje nye linjer øverst i makroen, der definerer variablerne FinalRow og i. Excel fortæller dig ikke om stavefejl, før du rent faktisk prøver at køre makroen. De advarer dig derefter om, at variablen ikke er defineret.

Det fremhævede ord er stavet forkert.

Så det er dit opkald. Hvis du ikke har noget imod at planlægge fremad og erklære alle dine variabler, har du VBA's sikkerhedsnet, der fortæller dig, om du har skrevet en variabel forkert. For mig foretrækker jeg spændingen ved at fejle koden en linje ad gangen og selv finde mine skrivefejl. Men hvis du ikke har lyst til at leve farligt, er du velkommen til at aktivere Option Explicit.

Jeg er ikke rigtig sikker på, om mine handlinger involverede trin 5, 8 eller 9 af de 12 trin. Men hvis nogen brugte ekstra tid på at debugge deres kode på grund af en skrivefejl, er jeg ked af at forårsage dig den smerte.

Hver lørdag vil jeg diskutere en af ​​mine dårlige vaner i Excel og diskutere, hvorfor du måske skal gøre, hvad jeg siger, i stedet for at gøre, hvad jeg gør.

Excel-tanken om dagen

Jeg har bedt mine Excel Master-venner om deres råd om Excel. Dagens tanke at tænke over:

"Skift ikke regnearkudviklere midt i scrummet."

Jordan Goldmeier

Interessante artikler...