Коли є сенс використовувати явний варіант - Поради Excel

Зміст

Здається, протягом багатьох років я викликав певну тривогу через свою суперечливу позицію, що Option Explicit не є корисним у VBA. Мені про це нагадали нещодавно, коли я робив сеанс Skype на Excel Weekend у Бразилії. Я написав книгу про Excel VBA для QUE. Ця книга була перекладена португальською мовою для бразильського ринку. Отож, мабуть, я вчив прекрасних людей з Бразилії про Excel VBA протягом 15 років. Тепер, коли я старший на 15 років і розумніший, я визнаю, що можуть бути вагомі причини використовувати Option Explicit.

У Нотр-Дамі я відвідував бізнес-курси з великою концентрацією в програмуванні. Через дивні обставини я пройшов усі курси програмування, доступні в ND, як в інженерній, так і в бізнес-школах. Я вивчив Фортрана, Паскаля, Асемблера та COBOL. Я любив програмувати. Ці курси програмування врятували мій середній бал та утримали від викидання. Ще в ті часи наші викладачі казали нам, що перед тим, як розпочати кодування, нам потрібно спланувати нашу програму та намалювати блок-схеми. Я був бунтарем. Спочатку я писав програму, а потім малював блок-схему після закінчення.

Перші 18 місяців своєї кар’єри я провів, пишучи програми COBOL. Але потім я перейшов у фінанси і десять років працював у галузі фінансів та бухгалтерії. Я займався в основному бухгалтерською роботою, але коли мені потрібно було написати якийсь код, я знав достатньо, щоб написати якийсь код.

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

Я був повстанцем, спочатку писав код, а згодом малював блок-схему. Декларування змінних, я стверджував, призначене для офіційних програмістів. Якщо ви працюєте в бухгалтерії і просто вибиваєте 20 рядків коду, немає причин оголошувати свої змінні заздалегідь.

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

По-перше, я завжди рекомендував оголосити ваші змінні об’єкта. У наведеному нижче коді WSD оголошується як робочий аркуш і призначається за допомогою команди Set. Якщо ви оголосите змінну об'єкта, ви можете переглянути всі властивості та методи, ввівши змінну, після якої додається крапка.

Оголошення змінних об’єкта веде до цього корисного автозаповнення

Не використовуючи Option Explicit, ви ризикуєте отримати орфографічні помилки. У наведеному нижче коді створюється змінна з назвою FinalRow. У наступному рядку я, швидше за все, мав на увазі цикл від 2 до FinalRow, але я неправильно ввів змінну як Fina1Row.

Десятиліття тому друкарські машини IBM Selectric пропустили клавішу 1, оскільки люди замість них вводили малу літеру.

Без явного варіанту хтось може не усвідомлювати, що помилка є. Змінна FinalRow може містити 100. Але код всередині циклу не буде виконуватися, оскільки змінна Fina1Row ніколи не ініціалізувалася і міститиме нуль.

Щоб запобігти розладу від налагодження коду з потенційними помилками друку, ви можете відкрити Інструменти, Параметри в меню VBA. Виберіть поле «Вимагати декларацію змінної», як показано нижче.

Щоб ловити помилки, поставте цей прапорець.

Усі майбутні модулі починатимуться з рядка з написом Option Explicit. Вам доведеться додати нові рядки у верхній частині макросу, що визначають змінні FinalRow та i. Excel не повідомлятиме вам про неправильне написання, поки ви насправді не спробуєте запустити макрос. Потім вони попереджатимуть вас, що змінна не визначена.

Виділене слово написано неправильно.

Отже, це ваш дзвінок. Якщо ви не проти запланувати заздалегідь і оголосити всі свої змінні, ви отримаєте захисну мережу VBA, яка повідомить вас, якщо ви неправильно ввели змінну. Для мене я віддаю перевагу гострим відчуттям налагодження коду по одному рядку за раз і самостійного пошуку моїх помилок друку. Але якщо вам не хочеться жити небезпечно, сміливо вмикайте Option Explicit.

Я не впевнений, чи мої дії стосувались кроків 5, 8 чи 9 із 12 кроків. Але якщо хтось витратив зайвий час на налагодження свого коду через помилку друку, я шкодую, що заподіяв вам такий біль.

Кожної суботи я обговорюватиму одну зі своїх шкідливих звичок у Excel та обговорюватиму, чому, можливо, ви повинні робити те, що я кажу, замість того, щоб робити те, що я роблю.

Думка дня в Excel

Я попросив своїх друзів Excel Master порадити їх щодо Excel. Сьогоднішня думка поміркувати:

"Не змінюйте розробників електронних таблиць в середині сутички."

Джордан Гольдмаєр

Цікаві статті...