Kui on mõistlik valikut eksplitsiitselt kasutada - Exceli näpunäited

Lang L: none (table-of-contents)

Tundub, et olen aastate jooksul tekitanud mõningast ängi oma vastuolulise seisukoha tõttu, et Option Explicit pole VBA-s kasulik. Mulle meenus see hiljuti, kui tegin Skype'i seansi Brasiilia Excel Weekendil. Olen QUE jaoks kirjutanud Exceli VBA-st raamatu. See raamat on tõlgitud Brasiilia turu jaoks portugali keelde. Nii et ilmselt olen 15 aastat õpetanud Brasili peenetele inimestele Exceli VBA-d. Nüüd, kui olen 15 aastat vanem ja targem, tunnistan, et Option Explicit'i kasutamiseks võib olla häid põhjuseid.

Notre Dame'is läbisin ärikursused, keskendudes programmeerimisele tugevalt. Imelike asjaolude tõttu läbisin kõik ND-s saadaval olevad programmeerimiskursused nii inseneri- kui ka ärikoolidest. Õppisin ära Fortrani, Pascali, Assembleri ja COBOLi. Mulle meeldis programmeerimine. Need programmeerimiskursused päästsid mu GPA ja hoidsid mind välja viskamast. Sel päeval ütlesid meie professorid meile, et enne kodeerimise alustamist peame oma programmi kavandama ja käsitsi joonistama vooskeemid. Ma olin mässaja. Kirjutasin kõigepealt programmi ja siis joonistasin voo pärast seda, kui olin valmis.

Veetsin oma karjääri esimesed 18 kuud COBOL-i programme kirjutades. Siis aga läksin üle rahandusse ja töötasin kümme aastat rahanduse ja raamatupidamise alal. Tegin peamiselt raamatupidamistöid, kuid kui mul oli vaja mingit koodi kirjutada, teadsin ma seda koodi kirjutamiseks piisavalt.

Programmeerisin Lotos 1-2-3 makrod ja hakkasin siis VBA makrosid kirjutama pärast 1995. aastal Excelisse üleminekut. Olin sel hetkel endiselt mässumeelne: oma muutujate ennetähtaegne deklareerimine tundus liiga palju nagu voo joonistamine enne koodi kirjutamist. Ma pole kunagi selline, kes plaanib ette. Sukelduge. Alustage kodeerimist. Kui vajate kuskil uut muutujat, looge muutuja lihtsalt.

Olin mässaja, kirjutasin kõigepealt koodi ja joonistasin vooskeemi hiljem. Muutujate deklareerimine on minu arvates ametlikele programmeerijatele. Kui töötate raamatupidamise alal ja koputate lihtsalt 20 koodirida välja, pole põhjust oma muutujaid enne tähtaega deklareerida.

Minu seisukoht selles küsimuses on mind teiste Exceli ekspertidega sõbralikesse vaidlustesse viinud. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

Esiteks olen alati soovitanud deklareerida teie objekti muutujad. Allolevas koodis deklareeritakse WSD töölehena ja määratakse käsuga Set. Kui deklareerite objekti muutuja, saate sirvida kõiki atribuute ja meetodeid, tippides muutuja, millele järgneb punkt.

Objekti muutujate deklareerimine viib selle kasuliku automaatse täitmiseni

Kui te ei kasuta Option Explicitit, on teil oht õigekirjavigade tekkeks. Allolevas koodis luuakse muutuja nimega FinalRow. Järgmisel real pidasin tõenäoliselt silmas liikumist 2-lt FinalRow'le, kuid sisestasin muutuja valesti kui Fina1Row.

Aastakümneid tagasi jätsid IBM Selectrici kirjutajad 1 võtme välja, kuna inimesed sisestasid selle asemel väiketähe L.

Ilma selge variandita ei pruugi keegi aru saada, et trükiviga on olemas. Muutuja FinalRow võib sisaldada 100. Kuid tsükli sees olevat koodi ei käivitata, kuna muutuja Fina1Row ei olnud kunagi initsialiseeritud ja sisaldab nulli.

Et vältida pettumust võimalike tippimisvigadega koodi silumisel, võite avada menüüs VBA Tools, Options. Valige allpool näidatud kast Nõua muutuja deklaratsiooni.

Kirjavigade tabamiseks märkige see ruut.

Kõik tulevased moodulid algavad reaga, mis ütleb Option Explicit. Peate lisama FinalRow ja i muutujad määratleva makro ülaossa uued read. Excel ei räägi teile valesti kirjutamisest enne, kui proovite makrot tegelikult käivitada. Seejärel hoiatatakse teid, et muutujat pole määratletud.

Esiletõstetud sõna on valesti kirjutatud.

Nii et see on teie kõne. Kui te ei viitsi ette planeerida ja deklareerida kõiki muutujaid, on VBA turvavõrk teile öelnud, kui sisestasite muutuja valesti. Minu jaoks eelistan põnevust koodi silumisega üks rida korraga ja oma trükivigade leidmisel ise. Kuid kui te ei soovi ohtlikult elada, lubage julgelt Option Explicit.

Ma pole päris kindel, kas minu tegevus hõlmas 12 sammu 5., 8. või 9. sammu. Kuid kui keegi veetis trükkimisvea tõttu oma koodi silumisega lisaaega, on mul kahju, et teile seda valu tekitasin.

Igal laupäeval arutan Excelis ühe oma halva harjumuse üle ja arutlen, miks peaksite tegema seda, mida ma ütlen, selle asemel, et teha seda, mida mina.

Exceli päeva mõte

Olen küsinud oma Exceli meistri sõpradelt Exceli kohta nõu. Tänane mõte mõelda:

"Ärge muutke arvutustabeli arendajaid keskel."

Jordan Goldmeier

Huvitavad Artiklid...