Kad ima smisla eksplicitno koristiti opciju - Excel savjeti

Sadržaj

Čini se da sam godinama izazivao određenu tjeskobu zbog svog kontroverznog stava da Izričita opcija nije korisna u VBA-u. Na to sam se podsjetio nedavno kada sam održao Skype sesiju na Excel Weekendu u Brazilu. Napisao sam knjigu o programu Excel VBA za QUE. Ta je knjiga prevedena na portugalski za tržište Brazila. Dakle, očito sam 15 godina poučavao dobre ljude iz Brazila o Excel VBA-u. Sad kad sam 15 godina stariji i mudriji, priznat ću da mogu postojati dobri razlozi za upotrebu eksplicitne opcije.

U Notre Dameu pohađao sam poslovne tečajeve s velikom koncentracijom u programiranju. Čudnim spletom okolnosti pohađao sam sve tečajeve programiranja dostupne u ND-u i iz tehničke i iz poslovne škole. Naučio sam Fortrana, Pascala, Assemblera i COBOL-a. Voljela sam programirati. Ti su tečajevi programiranja spasili moj prosjek uspjeha i spriječili me da me izbace. Nekada su nam profesori rekli da moramo planirati svoj program i ručno crtati dijagrame toka prije nego što započnemo s kodiranjem. Bio sam buntovnik. Prvo bih napisao program, a zatim nacrtao dijagram toka nakon što sam završio.

Prvih 18 mjeseci karijere proveo sam pišući programe COBOL. Ali onda sam prešao u financije i proveo deset godina radeći u financijama i računovodstvu. Radio sam uglavnom računovodstvene poslove, ali kad sam trebao napisati neki kod, znao sam dovoljno da napišem neki kod.

Programirao sam makronaredbe u Lotusu 1-2-3, a zatim sam počeo pisati VBA makronaredbe nakon što smo se 1995. prebacili na Excel. Tada sam se još uvijek pobunio: deklariranje svojih varijabli prije vremena činilo mi se previše poput crtanja dijagrama prije pisanja koda. Nikad nisam onaj koji planira unaprijed. Zaronite. Započnite s kodiranjem. Ako vam je negdje na putu potrebna nova varijabla, jednostavno stvorite varijablu.

Bio sam buntovnik, prvo sam napisao kôd, a kasnije nacrtao dijagram. Izjava o varijablama, tvrdila sam, je za formalne programere. Ako radite u Računovodstvu i jednostavno izbacujete 20 redaka koda, nema razloga da svoje varijable prijavite prije vremena.

Moje me stajalište o tome navelo na prijateljske rasprave s drugim Excel stručnjacima. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

Prvo, uvijek sam preporučivao deklariranje vaših objektnih varijabli. U donjem kodu WSD se deklarira kao radni list i dodjeljuje pomoću naredbe Set. Ako deklarirate objektnu varijablu, možete pregledavati sva svojstva i metode upisivanjem varijable nakon koje slijedi točka.

Deklariranje objektnih varijabli dovodi do ovog korisnog automatskog dovršavanja

Ako ne upotrebljavate eksplicitnu opciju, riskirate pravopisne pogreške. U donjem kodu kreira se varijabla pod nazivom FinalRow. U sljedećem sam retku vjerojatno mislio spojiti s 2 na FinalRow, ali pogrešno sam upisao varijablu kao Fina1Row.

Prije nekoliko desetljeća, pisači strojeva IBM Selectric izostavili su tipku 1 jer bi ljudi umjesto toga upisivali malo slovo L.

Bez izričite opcije, netko možda neće shvatiti da je tisak tu. Varijabla FinalRow može sadržavati 100. Ali kôd unutar petlje neće se izvršiti jer varijabla Fina1Row nikada nije inicijalizirana i sadržavat će nulu.

Da biste spriječili frustraciju otklanjanja pogrešaka u kodu s potencijalnim pogreškama pri upisu, možete otvoriti Alati, Opcije u izborniku VBA. Odaberite dolje prikazan okvir Zahtijevaj izjavu varijable.

Označite ovaj okvir da biste ulovili pogreške u kucanju.

Svi budući moduli započet će linijom koja kaže Option Explicit. Morat ćete dodati nove retke na vrhu makronaredbe koji definiraju varijable FinalRow i i. Excel vam neće reći o pravopisnoj pogrešci dok zapravo ne pokušate pokrenuti makronaredbu. Zatim će vas upozoriti da varijabla nije definirana.

Istaknuta riječ pogrešno je napisana.

Dakle, to je vaš poziv. Ako vam ne smeta planirati unaprijed i prijaviti sve svoje varijable, imat će vam sigurnosnu mrežu VBA koja vam kaže ako ste pogrešno upisali varijablu. Za mene je draže uzbuđenje otklanjanja pogrešaka u retku koda i pronalaženje vlastitih pogrešaka pri kucanju sam. Ali ako vam se ne da opasno živjeti, slobodno omogućite Option Explicit.

Nisam baš siguran jesu li moji postupci uključivali korake 5, 8 ili 9 od 12 koraka. Ali ako je netko proveo dodatno vrijeme otklanjajući pogreške u svom kodu zbog pogreške pri tipkanju, žao mi je što sam vam nanio tu bol.

Svake subote raspravljat ću o jednoj od svojih loših navika u Excelu i raspravljati o tome zašto biste možda trebali raditi ono što kažem umjesto onog što radim ja.

Excel misao dana

Pitao sam svoje prijatelje Excel Master za savjet o Excelu. Današnja misao za razmišljanje:

"Ne mijenjajte programere proračunskih tablica sredinom pregovora."

Jordan Goldmeier

Zanimljivi članci...