Найти в Дзене

📌 Как использовать VBA при возобновлении работы с ошибкой Next и при ошибке Goto 0

Оглавление

Ребята, всем привет! 👋

Продолжаем изучать VBA. В этом уроке мы научимся использовать VBA при возобновлении работы с ошибкой Next и при ошибке Goto 0.

✨ А прежде, чем мы начнем 📣 напомню, теперь у нас на канале есть удобный рубрикатор 👉 Быстрый поиск решения. Путеводитель по Excel, а все видео 📽 предыдущих уроков доступны и на YouTube.

Как использовать VBA при возобновлении работы с ошибкой Next и при ошибке Goto 0
Как использовать VBA при возобновлении работы с ошибкой Next и при ошибке Goto 0

☑️ Resume Next (при ошибке возобновить следующий)

При ошибке Resume Next сообщает VBA пропустить строки кода, содержащие ошибки, и перейти к следующей строке. Это работает следующим образом:

-2

Строка MsgBox 5 / 0 выдаст ошибку (вы не можете разделить на ноль!!!).

Добавив При возобновлении работы с ошибкой Next, VBA пропустит эту строку и выполнит остальную часть процедуры.

Вы можете проверить это самостоятельно, скопировав + вставив код и прокомментировав возобновление работы с ошибкой далее.

-3

☑️ При ошибке GoTo 0

При ошибке GoTo 0 - это настройка VBA по умолчанию. При возникновении ошибки с ошибкой GoTo 0, VBA остановит выполнение кода и отобразит стандартное окно сообщения об ошибке, например:

-4

Нет необходимости объявлять при ошибке GoTo 0, если вы не объявили какую-либо другую обработку ошибок ранее в своей процедуре.

Если вы добавили в свой код ловушку ошибок, например, при возобновлении работы с ошибкой Next, вы можете вставить при ошибке Goto 0, чтобы восстановить обработку ошибок VBA по умолчанию.

-5

⚠️ Это очень важно сделать! При ошибке Resume Next следует использовать с осторожностью и только при крайней необходимости.

☑️ On Error Resume (при ошибке возобновить следующий пример)

Рассмотрим пример, чтобы показать, как вы можете использовать On Error Resume Далее на практике. Этот код скроет каждый лист в рабочей книге:

-6

Если мы запустим этот код, мы получим сообщение об ошибке, поскольку мы не можем скрыть все листы в рабочей книге – по крайней мере, одна рабочая книга должна оставаться видимой:

-7

Однако, если мы добавим при возобновлении работы с ошибкой рядом с процедурой, как показано ниже, код продолжит работу после ошибки и оставит видимым последний лист в книге:

-8

а все другие будут скрыты:

-9

Теперь предположим, что мы хотим добавить еще немного кода в нашу процедуру. Далее давайте добавим ошибку GoTo 0, чтобы восстановить обработку ошибок VBA по умолчанию.

-10

Теперь, если ошибка возникает после строки On Error Goto 0 , появится сообщение об ошибке по умолчанию для Excel. В этом примере у нас уже есть лист с именем Sheet1 в ActiveWorkbook, поскольку код над ошибкой Goto 0 скрывает лист, но не удаляет его. Затем отобразится сообщение об ошибке Excel по умолчанию, указывающее, что имя листа уже занято:

-11

☑️ При ошибке перейти к строке

Мы также можем принудительно переместить наш код в другую строку кода, используя строку перехода к ошибке, которая сообщает VBA перейти к определенной строке кода в случае возникновения ошибки.

-12

В приведенном выше примере, когда код находит лист “Sheet1”, он переходит к строке кода под меткой обработчика ошибок – в этом случае он вызывает пользовательское окно сообщения, информирующее пользователей о том, что лист уже завершен.

После метки обработчика ошибок должно быть двоеточие, чтобы показать VBA, что это метка.

🔘 errhandler:

Затем код перейдет к строке под меткой и вернет пользовательское окно сообщения.

-13

Это полезно, когда вы не хотите, чтобы ваш пользователь мог нажать кнопку Debug, чтобы перейти к вашему коду, поскольку стандартное сообщение Excel всегда предоставляет возможность отладки кода.

-14

Нам также нужен вспомогательный элемент Exit в процедуре. Если нет листа с именем Sheet1, то эта строка кода будет запущена и переименует активный лист в Sheet1. Затем мы хотим, чтобы код заканчивался – мы не хотим, чтобы он передавался в обработчик ошибок и отображал окно сообщения. Затем строка Exit завершает процедуру и останавливает код:

-15

🔔 Для получения дополнительной информации об обработке ошибок VBA рекомендуем:

А на этом сегодня все. 👏 Продолжение следует...

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel. Следите за нашими новостями и вы узнаете больше о VBA и Excel в частности.

📝 Нам очень важна Ваша обратная связь. Отзыв по уроку и любые вопросы пишите в комментариях.

💝 А если у Вас пока нет вопросов, но вы дочитали данную статью до конца оставьте в комментариях просто смайлик 😉 (автору будет приятно)

И конечно же, за лайк 👍  и репост 🔁 данного поста благодарочка 💖 и респект 🤝 каждому!

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel.
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel.