Keď má zmysel použiť možnosť Explicit - Tipy pre program Excel

Obsah

Zdá sa, že som si za tie roky spôsobil určité obavy kvôli svojmu kontroverznému názoru, že Option Explicit nie je vo VBA užitočný. Pripomenulo mi to nedávno, keď som absolvoval reláciu Skype na víkende Excel v Brazílii. Napísal som knihu o Exceli VBA pre QUE. Táto kniha bola pre brazílsky trh preložená do portugalčiny. Takže som zjavne 15 rokov učil vynikajúcich ľudí z Brazílie o Excel VBA. Teraz, keď som o 15 rokov starší a múdrejší, pripúšťam, že môžu existovať dobré dôvody na použitie možnosti Option Explicit.

V Notre Dame som absolvoval obchodné kurzy s veľkou koncentráciou programovania. Za nezvyčajných okolností som absolvoval všetky kurzy programovania, ktoré sú k dispozícii v ND, na inžinierskych aj obchodných školách. Naučil som sa Fortran, Pascal, Assembler a COBOL. Miloval som programovanie. Tieto kurzy programovania zachránili moje GPA a zabránili mi, aby ma vyhodili. Už v ten deň nám naši profesori hovorili, že musíme naplánovať náš program a ručne nakresliť vývojové diagramy, kým sme začali s programovaním. Bol som rebel. Najprv by som napísal program a potom, ako som skončil, nakreslil vývojový diagram.

Prvých 18 mesiacov svojej kariéry som strávil písaním programov COBOL. Potom som však prešiel na financie a strávil som desať rokov prácou v odbore financie a účtovníctvo. Robil som väčšinou účtovnícke práce, ale keď som potreboval napísať nejaký kód, vedel som toho dosť na to, aby som napísal nejaký kód.

Naprogramoval som makra v Lotus 1-2-3 a potom som začal písať makrá VBA po tom, čo sme v roku 1995 prešli na Excel. V tom okamihu som bol stále rebelantský: deklarovanie mojich premenných v predstihu vyzeralo príliš ako nakreslenie vývojového diagramu pred napísaním kódu. Nikdy nie som ten, kto plánuje dopredu. Ponorte sa. Začnite kódovať. Ak niekde popri tom potrebujete novú premennú, jednoducho ju vytvorte.

Bol som rebel, najskôr som písal kód a kreslil vývojový diagram neskôr. Tvrdil som, že deklarovanie premenných je pre formálnych programátorov. Ak pracujete v účtovníctve a jednoducho vyradíte 20 riadkov kódu, nie je dôvod deklarovať svoje premenné vopred.

Môj postoj k tomu ma dostal do priateľských sporov s ostatnými odborníkmi na Excel. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

Najprv som vždy odporúčal deklarovať vaše objektové premenné. V nižšie uvedenom kóde je WSD deklarovaný ako pracovný hárok a priradený pomocou príkazu Nastaviť. Ak deklarujete objektovú premennú, môžete prehľadávať všetky vlastnosti a metódy zadaním premennej a bodkou.

Deklarovanie objektových premenných vedie k tomuto užitočnému automatickému dokončovaniu

Nepoužívaním Option Explicit riskujete pravopisné chyby. V nižšie uvedenom kóde je vytvorená premenná s názvom FinalRow. V ďalšom riadku som pravdepodobne chcel urobiť slučku z 2 do FinalRow, ale zle som zadal premennú ako Fina1Row.

Pred desiatkami rokov vynechali textoví textári IBM Selectric klávesu 1, pretože ľudia by namiesto nich napísali malé písmeno L.

Bez možnosti Explicitná možnosť si niekto nemusí uvedomiť, že existuje preklep. Premenná FinalRow môže obsahovať 100. Ale kód vo vnútri cyklu sa nespustí, pretože premenná Fina1Row nebola nikdy inicializovaná a bude obsahovať nulu.

Ak chcete zabrániť frustrácii v ladení kódu s možnými chybami pri písaní, môžete v ponuke VBA otvoriť Nástroje, Možnosti. Vyberte políčko Vyžadovať deklaráciu premennej zobrazené nižšie.

Ak chcete chytiť preklepy, začiarknite toto políčko.

Všetky budúce moduly budú začínať riadkom, ktorý hovorí Option Explicit. Budete musieť pridať nové riadky do hornej časti makra definujúceho premenné FinalRow a i. Excel vám nepovie pravopisné chyby, kým sa skutočne nepokúsite spustiť makro. Potom vás upozornia, že premenná nie je definovaná.

Zvýraznené slovo je chybne napísané.

Je to teda vaša výzva. Ak vám neprekáža plánovanie vopred a deklarovanie všetkých svojich premenných, zobrazí sa vám bezpečnostná sieť VBA, ktorá vám oznámi, či ste premennú zadali nesprávne. Pre mňa uprednostňujem vzrušenie z ladenia kódu po jednom riadku a hľadania mojich preklepov sám. Ak sa vám však nechce žiť nebezpečne, pokojne povoľte možnosť Option Explicit.

Nie som si istý, či moje kroky zahŕňali kroky 5, 8 alebo 9 z 12 krokov. Ak ale niekto trávil čas ladením kódu kvôli chybe pri písaní, je mi ľúto, že vám spôsoboval túto bolesť.

Každú sobotu budem v Exceli prediskutovať jeden zo svojich zlých návykov a prediskutovať, prečo by ste možno mali robiť to, čo hovorím, namiesto toho, čo robím ja.

Excel myslel dňa

Požiadal som svojich priateľov programu Excel Master o radu o programe Excel. Dnešná myšlienka na zamyslenie:

„Nemeňte vývojárov tabulkových procesorov uprostred skrumáže.“

Jordan Goldmeier

Zaujímavé články...