Когда имеет смысл использовать явный параметр - Советы по Excel

Похоже, что за эти годы я вызывал некоторую тревогу из-за моей противоречивой позиции, что 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.

Десятилетия назад печатники IBM Selectric пропускали клавишу 1, потому что вместо этого люди набирали строчную L.

Без Option Explicit кто-то может не понять, что это опечатка. Переменная FinalRow может содержать 100. Но код внутри цикла не будет выполняться, потому что переменная Fina1Row никогда не была инициализирована и будет содержать ноль.

Чтобы предотвратить разочарование от отладки кода с возможными опечатками, вы можете открыть Инструменты, Параметры в меню VBA. Выберите поле «Требовать объявление переменной», показанное ниже.

Установите этот флажок, чтобы обнаруживать опечатки.

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

Выделенное слово написано с ошибкой.

Итак, это ваш звонок. Если вы не против заранее спланировать и объявить все свои переменные, у вас будет подстраховка VBA, которая сообщит вам, если вы неправильно ввели переменную. Что касается меня, я предпочитаю отлаживать код по одной строке за раз и самостоятельно находить свои опечатки. Но если вам не хочется жить опасно, смело включайте Option Explicit.

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

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

Идея дня в Excel

Я попросил совета у моих друзей-мастеров Excel по поводу Excel. Сегодняшняя мысль задуматься:

«Не меняйте разработчиков электронных таблиц в середине схватки».

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

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