Amikor értelmes az opció explicit használata - Excel tippek

Tartalomjegyzék

Úgy tűnik, hogy az évek során némi dühöt okoztam vitatott álláspontom miatt, miszerint az Option Explicit nem hasznos a VBA-ban. Erről nemrég eszembe jutott, amikor Skype-munkamenetet hajtottam végre a brazil Excel Weekenden. Írtam egy könyvet az Excel VBA-ról a QUE-hoz. Ezt a könyvet portugál nyelvre fordították a brazil piac számára. Úgy tűnik tehát, hogy 15 éve tanítottam a brazil szép embereket az Excel VBA-ról. Most, hogy 15 évvel idősebb és bölcsebb vagyok, elismerem, hogy jó okok lehetnek az explicit opció használatára.

A Notre Dame-on üzleti tanfolyamokon vettem részt, nagy koncentrációval a programozás terén. Furcsa körülmények között minden ND-n elérhető programozási tanfolyamot elvégeztem a mérnöki és az üzleti iskolákból egyaránt. Megtanultam Fortrant, Pascalt, Assemblert és COBOL-ot. Szerettem programozni. Ezek a programozó tanfolyamok megmentették a GPA-t, és megakadályoztak, hogy kidobjam. A nap folyamán professzoraink elmondták, hogy a kódolás megkezdése előtt meg kell terveznünk programunkat és kézi rajz-folyamatábrákat. Lázadó voltam. Először megírtam a programot, majd elkészültem megrajzoltam a folyamatábrát.

Pályafutásom első 18 hónapját COBOL programok írásával töltöttem. De aztán átmentem a pénzügyekbe, és tíz évet töltöttem a pénzügyi és számviteli területen. Leginkább könyvelési munkát végeztem, de amikor valamilyen kódot kellett írnom, akkor elég sokat tudtam írni valamilyen kódot.

Programoztam makrókat a Lotus 1-2-3-ban, majd elkezdtem írni a VBA-makrókat, miután 1995-ben átálltunk az Excel-re. Ezen a ponton még mindig lázadó voltam: A változók idő előtti deklarálása túlságosan úgy tűnt, mintha folyamatábra rajzolódna a kód megírása előtt. Soha nem vagyok az, aki előre tervez. Merüljön el. Indítsa el a kódolást. Ha valahol új változóra van szüksége, egyszerűen hozza létre a változót.

Lázadó voltam, először megírtam a kódot, és később megrajzoltam a folyamatábrát. Azt állítottam, hogy a változók deklarálása hivatalos programozóknak szól. Ha könyveléssel foglalkozik, és egyszerűen kiüt 20 kódsorot, akkor nincs oka a változók idő előtti deklarálására.

Ezzel kapcsolatos álláspontom baráti vitákba keveredett más Excel-szakértőkkel. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.

Először is mindig azt javasoltam, hogy deklaráljuk az objektumváltozókat. Az alábbi kódban a WSD-t munkalapként deklaráljuk, és a Set paranccsal rendeljük hozzá. Ha deklarálja az objektumváltozót, az összes tulajdonságot és metódust áttekintheti a változó, majd egy pont beírásával.

Az objektumváltozók deklarálása ehhez a hasznos automatikus kiegészítéshez vezet

Ha nem használja az Explicit Opciót, fennáll a helyesírási hibák kockázata. Az alábbi kódban létrejön a FinalRow nevű változó. A következő sorban valószínűleg 2-ről a FinalRow-ra akartam hurokolni, de a változót Fina1Row-ként hibáztam.

Évtizedekkel ezelőtt az IBM Selectric tipográfusok kihagyták az 1 kulcsot, mert az emberek ehelyett egy kis L betűt írtak.

Az explicit opció nélkül előfordulhat, hogy valaki nem veszi észre, hogy az elírási hiba ott van. A FinalRow változó 100-at tartalmazhat. De a hurokban lévő kód nem fog végrehajtódni, mert a Fina1Row változót soha nem inicializálták, és nulla lesz.

Annak elkerülése érdekében, hogy a frusztráció hibakeresést végezzen a lehetséges gépelési hibákkal, megnyithatja az Eszközök, Opciók elemet a VBA menüben. Válassza az alább látható Változó deklaráció megkövetelése négyzetet.

Az elírás elírásához jelölje be ezt a négyzetet.

Minden jövőbeli modul az Option Explicit felirattal kezdődik. Új sorokat kell hozzáadnia a makró tetején, meghatározva a FinalRow és az i változókat. Az Excel csak akkor mondja el a hibás írásmódot, ha valóban megpróbálja futtatni a makrót. Ezután figyelmeztetni fogják, hogy a változó nincs meghatározva.

A kiemelt szó elírása hibás.

Tehát ez a hívása. Ha nincs gondja előre tervezni és deklarálni az összes változót, akkor a VBA biztonsági hálója megmondja, ha helytelenül írt be egy változót. Számomra inkább az az izgalom, hogy egyenként hibakeresem a kódot, és egyedül találom meg a gépelési hibáimat. De ha nincs kedved veszélyesen élni, akkor bátran engedélyezd az explicit opciót.

Nem igazán vagyok biztos abban, hogy a cselekedeteim a 12 lépés 5., 8. vagy 9. lépését érintették-e. De ha valaki gépelési hiba miatt hosszabb időt töltött a kód hibakeresésével, sajnálom, hogy ilyen fájdalmat okoztam neked.

Minden szombaton megbeszélem az egyik rossz szokásomat az Excelben, és megbeszélem, miért tennéd, amit mondok, ahelyett, hogy tenném azt, amit én.

Excel gondolata a napnak

Az Excel Master barátaimtól kértem tanácsokat az Excel-mel kapcsolatban. Mai gondolat, hogy elgondolkodjak:

"Ne módosítsa a táblázatkezelők fejlesztőit."

Jordan Goldmeier

érdekes cikkek...