Когато има смисъл да се използва изрично опция - Съвети на Excel

Съдържание

Изглежда, че съм предизвиквал известна тревога през годините поради противоречивата ми позиция, че Option Explicit не е полезен във VBA. Това ми беше напомнено наскоро, когато направих сесия в Skype в Excel Weekend в Бразилия. Написах книга за Excel VBA за QUE. Тази книга е преведена на португалски за бразилския пазар. И така, очевидно съм преподавал добрите хора от Бразилия на Excel VBA в продължение на 15 години. Сега, когато съм с 15 години по-възрастен и по-мъдър, ще призная, че може да има основателни причини да използвам Option Explicit.

В Нотр Дам взех бизнес курсове с голяма концентрация в програмирането. Чрез странен набор от обстоятелства взех всички курсове по програмиране, предлагани в ND, както от инженерните, така и от бизнес училищата. Научих Fortran, Pascal, Assembler и COBOL. Обичах да програмирам. Тези курсове по програмиране спасиха GPA и ме предпазиха от изхвърляне. Още през деня, нашите професори ни казаха, че трябва да планираме нашата програма и да нарисуваме ръчно диаграми, преди да започнем да кодираме. Бях бунтар. Първо щях да напиша програмата и след това да нарисувам схемата, след като приключих.

Прекарах първите 18 месеца от кариерата си в писане на програми COBOL. Но след това се прехвърлих във Финанси и прекарах десет години в „Финанси и счетоводство“. Правих предимно счетоводна работа, но когато трябваше да напиша някакъв код, знаех достатъчно, за да напиша някакъв код.

Програмирах макроси в Lotus 1-2-3 и след това започнах да пиша VBA макроси, след като преминахме към Excel през 1995 г. В този момент все още бях бунтовник: декларирането на променливите ми преди време изглеждаше твърде много като изготвяне на блок-схема преди писането на кода. Никога не съм човек, който да планира напред. Потопете се. Започнете да кодирате. Ако имате нужда от нова променлива някъде по пътя, просто създайте променливата.

Бях бунтар, първо написах кода и по-късно изчертах блок-схемата. Декларирането на променливи, твърдях, е за официални програмисти. Ако работите в счетоводството и просто избивате 20 реда код, няма причина да декларирате променливите си преди време.

Моята позиция по този въпрос ме вкара в приятелски спорове с други експерти на Excel. Джордан Голдмайер. Боб Филипс. Кристиано Галвао.

Първо, винаги съм препоръчвал да декларирате вашите обектни променливи. В кода по-долу WSD се декларира като работен лист и се присвоява с помощта на командата Set. Ако декларирате променливата на обекта, можете да прегледате всички свойства и методи, като въведете променливата, последвана от точка.

Декларирането на обектни променливи води до това полезно автоматично довършване

Като не използвате Option Explicit, рискувате правописни грешки. В кода по-долу се създава променлива, наречена FinalRow. В следващия ред вероятно имах намерение да завъртя от 2 до FinalRow, но погрешно въведох променливата като Fina1Row.

Преди десетилетия машинописците на IBM Selectric пропуснаха клавиша 1, защото хората вместо това щяха да напишат малки букви L.

Без изрична опция някой може да не осъзнае, че грешката е там. Променливата FinalRow може да съдържа 100. Но кодът в цикъла няма да се изпълни, тъй като променливата Fina1Row никога не е била инициализирана и ще съдържа нула.

За да предотвратите разочарованието от отстраняване на грешки в кода с потенциални грешки при въвеждане, можете да отворите Tools, Options в менюто VBA Изберете полето Изискване на декларация на променлива, показано по-долу.

За да уловите печатни грешки, поставете отметка в това квадратче.

Всички бъдещи модули ще започват с ред, който казва Option Explicit. Ще трябва да добавите нови редове в горната част на макроса, дефиниращи променливите FinalRow и i. Excel няма да ви разкаже за правописа, докато всъщност не се опитате да стартирате макроса. След това ще ви предупредят, че променливата не е дефинирана.

Маркираната дума е грешно написана.

И така, това е вашето обаждане. Ако нямате нищо против да планирате предварително и да декларирате всичките си променливи, ще имате защитната мрежа на VBA, която ще ви каже, ако сте въвели променлива неправилно. За мен предпочитам тръпката от отстраняване на грешки в кода един по ред и намиране на грешките ми при въвеждане сам. Но ако не ви се живее опасно, не се колебайте да активирате Option Explicit.

Не съм наистина сигурен дали действията ми включват стъпки 5, 8 или 9 от 12-те стъпки. Но ако някой е прекарал допълнително време за отстраняване на грешки в кода си поради грешка при въвеждане, съжалявам, че ви причиних тази болка.

Всяка събота ще обсъждам един от лошите си навици в Excel и ще обсъждам защо може би трябва да правите това, което казвам, вместо да правите това, което правя аз.

Мисъл на деня в Excel

Помолих приятелите си в Excel Master за съвети относно Excel. Днешната мисъл за размисъл:

„Не променяйте средата на разработчиците на електронни таблици.“

Джордан Голдмайер

Интересни статии...