Похоже, что за эти годы я вызывал некоторую тревогу из-за моей противоречивой позиции, что Option Explicit бесполезен в VBA. Мне напомнили об этом недавно, когда я проводил сеанс Skype в Excel Weekend of Brazil. Я написал книгу по Excel VBA для QUE. Эта книга была переведена на португальский для рынка Бразилии. Итак, очевидно, я учил хороших людей Бразилии работе с Excel VBA в течение 15 лет. Теперь, когда я на 15 лет старше и мудрее, я признаю, что могут быть веские причины использовать Option Explicit.
В Нотр-Даме я прошел бизнес-курсы с большим упором на программирование. По странным обстоятельствам я прошел все курсы программирования, доступные в ND, как в инженерной, так и в бизнес-школах. Я изучил Фортран, Паскаль, Ассемблер и КОБОЛ. Я любил программировать. Эти курсы программирования спасли мой средний балл и не дали мне бросить школу. Когда-то наши профессора говорили нам, что мы должны спланировать нашу программу и нарисовать от руки блок-схемы, прежде чем мы начнем писать код. Я был бунтарем. Я сначала написал программу, а затем нарисовал блок-схему.
Первые 18 месяцев своей карьеры я написал программы на COBOL. Но потом я перешел в Финансы и десять лет проработал в Финансах и Бухгалтерии. Я занимался в основном бухгалтерской работой, но когда мне нужно было написать код, я знал достаточно, чтобы написать код.
Я программировал макросы в Lotus 1-2-3, а затем начал писать макросы VBA после того, как мы перешли на Excel в 1995 году. Я все еще был бунтарем в тот момент: объявление моих переменных заранее казалось слишком похожим на рисование блок-схемы перед написанием кода. Я никогда не планирую заранее. Погрузитесь. Начните кодировать. Если вам понадобится новая переменная где-то по пути, просто создайте переменную.
Я был бунтарем, сначала написал код, а потом нарисовал блок-схему. Я утверждал, что объявление переменных предназначено для формальных программистов. Если вы работаете в бухгалтерском учете и просто набираете 20 строк кода, нет причин объявлять переменные заранее.
Моя позиция по этому поводу привела меня к дружеским спорам с другими экспертами по Excel. Джордан Голдмайер. Боб Филлипс. Криштиану Гальвао.
Во-первых, я всегда рекомендовал объявлять ваши объектные переменные. В приведенном ниже коде WSD объявлен как рабочий лист и назначается с помощью команды Set. Если вы объявите объектную переменную, вы можете просмотреть все свойства и методы, набрав переменную с точкой.

Не используя Option Explicit, вы рискуете получить орфографические ошибки. В приведенном ниже коде создается переменная с именем FinalRow. В следующей строке я, вероятно, имел в виду перейти от 2 к FinalRow, но я неправильно ввел переменную как Fina1Row.

Без Option Explicit кто-то может не понять, что это опечатка. Переменная FinalRow может содержать 100. Но код внутри цикла не будет выполняться, потому что переменная Fina1Row никогда не была инициализирована и будет содержать ноль.
Чтобы предотвратить разочарование от отладки кода с возможными опечатками, вы можете открыть Инструменты, Параметры в меню VBA. Выберите поле «Требовать объявление переменной», показанное ниже.

Все будущие модули будут начинаться со строки Option Explicit. Вам нужно будет добавить новые строки в верхней части макроса, определяющего переменные FinalRow и i. Excel не сообщит вам об орфографической ошибке, пока вы не попытаетесь запустить макрос. Затем они сообщат вам, что переменная не определена.

Итак, это ваш звонок. Если вы не против заранее спланировать и объявить все свои переменные, у вас будет подстраховка VBA, которая сообщит вам, если вы неправильно ввели переменную. Что касается меня, я предпочитаю отлаживать код по одной строке за раз и самостоятельно находить свои опечатки. Но если вам не хочется жить опасно, смело включайте Option Explicit.
Я не совсем уверен, были ли мои действия связаны с шагами 5, 8 или 9 из 12 шагов. Но если кто-то потратил дополнительное время на отладку своего кода из-за опечатки, мне очень жаль, что я причинил вам такую боль.
Каждую субботу я буду обсуждать одну из своих вредных привычек в Excel и обсуждать, почему, возможно, вам следует делать то, что я говорю, а не делать то, что я делаю.
Идея дня в Excel
Я попросил совета у моих друзей-мастеров Excel по поводу Excel. Сегодняшняя мысль задуматься:
«Не меняйте разработчиков электронных таблиц в середине схватки».
Джордан Голдмайер