Excel VBA при ошибке возобновить следующий

Обработка ошибок - очень полезный и значимый механизм для языков программирования, таких как VBA Контроль или предотвращение ошибок, который является аспектом обработки ошибок, что означает принятие эффективных и значительных мер в сценарии VBA, чтобы избежать появления всплывающего сообщения об ошибке. Оператор Excel VBA On Error Resume Next игнорирует строку кода, которая вызывает ошибку, и продолжает или направляет выполнение на следующую строку, следующую за строкой, вызвавшей ошибку.

ПРИМЕЧАНИЕ. Оператор Error Resume Next не исправляет ошибки времени выполнения, это ошибка, игнорирующая, где выполнение программы VB будет продолжаться со строки, вызвавшей ошибку времени выполнения.

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

Типы ошибок в VBA

Ниже приведены различные типы ошибок в VBA:

  1. Синтаксическая ошибка или ошибка синтаксического анализа.
  2. Ошибка компиляции или компиляции.
  3. Ошибка выполнения.
  4. Логическая ошибка

Вышеуказанные ошибки могут быть исправлены с помощью отладки и «On Error» операторов в коде. Ошибка выполнения может быть предотвращена с помощью On Error Resume Next.

Ошибка выполнения VBA:

Перед объяснением On Error Resume Next вы должны знать об ошибке времени выполнения, когда невозможные математические операторы или термины присутствуют в операторе, тогда эта ошибка времени выполнения возникает.

Примеры Excel VBA при ошибке Resume Next

Ниже приведены различные примеры On Error Resume Next в Excel VBA:

Вы можете скачать этот VBA при ошибке Возобновить следующий шаблон Excel здесь - VBA при ошибке Возобновить следующий шаблон Excel

VBA On Error Resume Next - Пример № 1

Здесь ошибка будет проигнорирована, и выполнение кода будет продолжено. В приведенном ниже примере значение 6 не может быть разделено на ноль, если вы запустите его, не введя оператор On Error Resume Next, то произойдет ошибка, упомянутая ниже.

Код:

 Sub RUNTIME_1 () MsgBox 6/0 End Sub 

Если On Error Resume Next вводится вверху кода после оператора SUB, он игнорирует ошибку во время выполнения и переходит к следующему оператору, что приводит к выводу 6/2 (всплывающее окно сообщения с результатом).

Код:

 Sub RUNTIME_2 () При ошибке Возобновить Далее MsgBox 6/0 MsgBox 6/2 End Sub 

VBA On Error Resume Next - Пример № 2

Я могу использовать On Error Resume Next в любом месте кода от начала до конца. В приведенном ниже примере я должен сделать 3 расчета, т.е.

9/3 =?

9/0 =?

9/2 =?

В приведенном выше примере вы можете наблюдать второй расчет, где любое число не может быть разделено на ноль, то есть 9 не может быть разделено на ноль на втором шаге. Предположим, что если вы запустите макрос, не вводя оператор On Error Resume Next, теперь я могу выполнить код шаг за шагом с помощью шага в или клавиши F8, чтобы понять, как он работает.

Теперь я запускаю приведенный выше код, нажимая на шаг в опцию или клавишу F8, шаг за шагом. Я просто копирую приведенный выше код и начинаю выполнять его шаг за шагом, для первого шага расчета появляется окно сообщения 3.

Код:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

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

Код:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Теперь, если я даже нажму на отладку, она не может продолжаться дальше, где я перейду ко второй строке кода (она будет выделена желтым цветом), где мне нужно сделать исправление. Таким образом, здесь, если в дальнейшем щелкнуть опцию Step Into или клавишу F8, третье вычисление в этом коде не будет выполнено.

Чтобы исправить или обработать эту ошибку времени выполнения, я должен использовать или выполнить оператор OnError Resume Next над вторым кодом или в начале кода под подстановкой. так что он пропустит эту строку кода и перейдет к третьему шагу кода и вычислит значение.

Код:

 Sub RUNTIME_30 () MsgBox 9/3 При ошибке Возобновить Далее MsgBox 9/0 MsgBox 9/2 End Sub 

ИЛИ

 Sub RUNTIME_31 () При ошибке Возобновить Далее MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Теперь, я добавил в коде сообщение об ошибке возобновить следующее, где вы можете использовать любой из приведенных выше кодов, если вы запустите его шаг за шагом, вы получите всплывающее окно с двумя сообщениями, один из которых - первый выходной код, а третий - третий. расчет. On Error Resume Next будет игнорировать ошибку времени выполнения во втором коде и перейдет к третьему коду.

VBA On Error Resume Next - Пример № 2

Теперь мы увидим комбинацию On Error Resume Next с Error GoTo 0. В приведенном ниже коде он будет игнорировать ошибки, пока не достигнет On Error GoTo 0 . После оператора On Error GoTo 0 код возвращается или переходит к обычной проверке ошибок и вызывает ожидаемую ошибку впереди.

Код:

 Sub onError_Go_to_0_with_Resume_next () При ошибке Resume Next Kill «C: TempFile.exe» При ошибке GoTo 0 Range («A1»). Значение = 100 / «PETER» End Sub 

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

Теперь вы можете сохранить свою книгу как «книгу с поддержкой макросов Excel». При нажатии на сохранить как в левом углу листа.

когда вы снова откроете этот файл Excel, вы можете использовать нижеприведенную комбинацию клавиш, т.е.

Сочетание клавиш + Alt + F11 помогает вам получить доступ ко всему созданному макрокоду рабочей книги. Клавиши быстрого доступа Function + Alt + F8 помогают вам открыть диалоговое окно «Макрос», в котором содержатся все имена макросов, где вы можете запустить определенный код макроса по вашему выбору.

То, что нужно запомнить

  • Ошибка времени выполнения будет автоматически перехвачена и сохранена в глобальном объекте Err.
  • При ошибке Resume Next обычно предотвращают прерывание выполнения кода.
  • Свойства объекта ошибки (объект Err) очищаются автоматически, когда Resume Next используется в процедуре обработки ошибок

Рекомендуемые статьи

Это руководство для VBA On Error Resume Next. Здесь мы обсуждаем различные типы ошибок в VBA Excel вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Полное руководство по макросам VBA
  2. VBA DateDiff (Примеры с шаблоном Excel)
  3. Как использовать поиск цели в VBA?
  4. VBA Protect Sheet с синтаксисом
  5. VBA Environ

Категория: