Når det er fornuftig å bruke eksplisitt alternativ - Excel-tips

Innholdsfortegnelse

Det ser ut til at jeg har forårsaket litt angst gjennom årene på grunn av min kontroversielle holdning til at Option Explicit ikke er nyttig i VBA. Jeg ble minnet om dette nylig da jeg gjorde en Skype-økt på Excel Weekend of Brazil. Jeg har skrevet en bok om Excel VBA for QUE. Boken er oversatt til portugisisk for det brasilianske markedet. Så tilsynelatende har jeg lært de fine folket i Brasil om Excel VBA i 15 år. Nå som jeg er 15 år eldre og klokere, vil jeg innrømme at det kan være gode grunner til å bruke Option Explicit.

På Notre Dame tok jeg forretningskurs med stor konsentrasjon i programmering. Gjennom et underlig sett med omstendigheter tok jeg hvert programmeringskurs tilgjengelig på ND fra både ingeniør- og handelshøyskolene. Jeg lærte Fortran, Pascal, Assembler og COBOL. Jeg elsket programmering. Disse programmeringskursene reddet GPA og forhindret meg i å bli kastet ut. Tilbake på dagen fortalte professorene oss at vi måtte planlegge programmet vårt og håndtegne flytskjemaer før vi begynte å kode. Jeg var opprører. Jeg skulle skrive programmet først og deretter tegne flytskjemaet etter at jeg var ferdig.

Jeg brukte de første 18 månedene av karrieren min på å skrive COBOL-programmer. Men så gikk jeg over til økonomi og brukte ti år på økonomi og regnskap. Jeg gjorde mest regnskapsarbeid, men da jeg trengte å skrive litt kode, visste jeg nok til å skrive noe kode.

Jeg programmerte makroer i Lotus 1-2-3 og begynte deretter å skrive VBA-makroer etter at vi byttet til Excel i 1995. Jeg var fremdeles opprørsk på det tidspunktet: å erklære variablene mine på forhånd syntes for mye som å tegne et flytskjema før jeg skrev koden. Jeg er aldri en som planlegger fremover. Dykk inn. Start kodingen. Hvis du trenger en ny variabel et sted underveis, oppretter du bare variabelen.

Jeg var opprører, skrev koden først og tegnet flytskjemaet senere. Erklæring om variabler, hevdet jeg, er for formelle programmerere. Hvis du jobber med regnskap og bare slår ut 20 linjer med kode, er det ingen grunn til å erklære variablene dine på forhånd.

Min holdning til det har fått meg inn i noen vennlige argumenter med andre Excel-eksperter. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

For det første har jeg alltid anbefalt å erklære objektvariablene dine. I koden nedenfor blir WSD erklært som et regneark og tilordnet ved hjelp av Set-kommandoen. Hvis du erklærer objektvariabelen, kan du bla gjennom alle egenskaper og metoder ved å skrive variabelen etterfulgt av en periode.

Å erklære objektvariabler fører til denne nyttige autofullføringen

Ved ikke å bruke Option Explicit risikerer du stavefeil. I koden nedenfor opprettes en variabel kalt FinalRow. I neste linje mente jeg sannsynligvis å gå fra 2 til FinalRow, men jeg skrev feil inn variabelen som Fina1Row.

For noen tiår siden utelatt IBM Selectric typerforfattere 1-tasten fordi folk ville skrive små bokstaver L i stedet.

Uten eksplisitt opsjon kan det hende at noen ikke skjønner at skrivefeilen er der. FinalRow-variabelen kan inneholde 100. Men koden i sløyfen vil ikke kjøres fordi Fina1Row-variabelen aldri ble initialisert og vil inneholde et null.

For å forhindre frustrasjon fra feilsøkingskode med potensielle skrivefeil, kan du åpne Verktøy, Alternativer i VBA-menyen. Velg boksen Krev variabel deklarasjon vist nedenfor.

Merk av i denne boksen for å fange skrivefeil.

Alle fremtidige moduler vil starte med en linje som sier Option Explicit. Du må legge til nye linjer øverst i makroen som definerer FinalRow- og i-variablene. Excel vil ikke fortelle deg om feilstavingen før du faktisk prøver å kjøre makroen. De vil da varsle deg om at variabelen ikke er definert.

Det markerte ordet er feilstavet.

Så det er din samtale. Hvis du ikke har noe imot å planlegge fremover og erklære alle variablene dine, vil du ha sikkerhetsnettet til VBA som forteller deg om du skrev en variabel feil. For meg foretrekker jeg spenningen ved å feilsøke koden en linje om gangen og finne mine skrivefeil alene. Men hvis du ikke har lyst til å leve farlig, kan du aktivere Option Explicit.

Jeg er ikke helt sikker på om handlingene mine involverte trinn 5, 8 eller 9 av de 12 trinnene. Men hvis noen brukte ekstra tid på å feilsøke koden på grunn av en skrivefeil, beklager jeg at du forårsaket den smerten.

Hver lørdag vil jeg diskutere en av mine dårlige vaner i Excel og diskutere hvorfor du kanskje skal gjøre det jeg sier i stedet for å gjøre det jeg gjør.

Excel-tanken om dagen

Jeg har bedt mine Excel Master-venner om deres råd om Excel. Dagens tanke å tenke på:

"Ikke bytt mellom regnearkutviklere i midten."

Jordan Goldmeier

Interessante artikler...