Бывали ли у вас ситуации, когда код прерывался из-за ошибки?
В этом уроке рассмотрим, как обрабатывать ошибки в циклах Do While с помощью оператора On Error.
Оператор On Error может быть использован для перехвата ошибок и выполнения определенных действий в случае их возникновения. Обычно, это означает, что будет выполнен некоторый код, который попытается исправить ошибку или просто сообщит об этом пользователю.
▶️ Пример 1. Вывод сообщения об ошибке
В этом примере, оператор On Error GoTo ErrorHandler указывает, что в случае возникновения ошибки, выполнение кода будет переходить на метку ErrorHandler:
🔔 Обратите внимание, что здесь также используется оператор Resume Next, который указывает, что выполнение макроса должно продолжаться сразу после того места, где произошла ошибка. Это означает, что цикл Do While не будет прерван из-за ошибки.
▶️ Пример 2. Деление на ноль
В этом примере использован цикл Do While для обработки значений в столбце A и делим их на значения в столбце B. Однако, если значение в столбце B равно нулю, то это вызовет ошибку деления на ноль.
- Оператор On Error Resume Next указывает, что если произойдет ошибка, то необходимо продолжить выполнение программы, а не останавливаться.
- Цикл Do While использован чтобы перебрать значения в столбцах A и B и делить их друг на друга.
- Если произойдет ошибка деления на ноль, то она будет перехвачена, и программа продолжит работу, не останавливаясь.
- Затем проверяем, произошла ли ошибка, используя свойство Err.Number. Если это так, выводим сообщение и очищаем объект Err, чтобы программа могла продолжить работу.
▶️ Пример 3. Использование оператора On Error в цикле Do While для обработки ошибок, связанных с делением на ноль (вариант 2)
В этом примере генерируется два случайных числа и делится первое число на второе. Однако, если второе число равно нулю, происходит ошибка деления на ноль, которая обрабатывается оператором On Error:
Метка обработки ошибок устанавливается с помощью оператора On Error GoTo ErrorHandler. Затем, при возникновении ошибки, управление передается на эту метку и выполняется код обработки ошибок.
Подводя итог...
Оператор On Error позволяет эффективно обрабатывать ошибки в циклах Do While и предотвращать прерывание работы программы при возникновении ошибок.
🔔 Но нужно понимать, что он не является универсальным решением для всех ошибок. Некоторые ошибки могут быть серьезными и требовать более глубокого анализа и исправления. Однако, если знаете, что код может вызвать определенную ошибку, то использование оператора On Error будет полезным.