VBA при ошибке Exit Sub

В VBA вы можете запрограммировать свой код для выхода из подпрограммы при возникновении ошибки. Для этого используйте При ошибке GoTo а также Выйти из подводной лодки.

При ошибке Goto сообщает VBA, что при обнаружении ошибки «Перейти к» определенному разделу вашего кода. Бывший:

1 При ошибке Перейти к ErrorHandler

Затем из этого раздела вы можете указать VBA Exit Sub для выхода из подпроцедуры:

12 ErrorHandler:Выйти из подводной лодки

Читайте дальше, чтобы увидеть эти строки кода в действии …

Выход из подпрограммы при ошибке в VBA

В этом примере мы сгенерируем ошибку путем деления на ноль:

1 я = 5/0

См. Полный код ниже. Когда VBA считывает ошибку, он «переходит» в раздел кода ErrorHandler и завершает работу:

123456789101112131415 Sub TestError ()Dim i как целое числоПри ошибке Перейти к ErrorHandlerя = 5/0'Сделай что-нибудь со мнойMsgBox iВыйти из подводной лодкиErrorHandler:MsgBox "Если ошибка, то выйдите из Sub"Выйти из подводной лодкиКонец подписки

Чтобы указать обработку ошибок, вам сначала нужно объявить При ошибке GoTo утверждение. Он должен быть объявлен в начале Sub:

1 При ошибке Перейти к ErrorHandler

После этого нужно объявить код обработки ошибок. Обычно это конец кода:

123 ErrorHandler:MsgBox "Если ошибка, то выйдите из Sub"Выйти из подводной лодки

Мы добавляем Exit Sub над ErrorHandler, потому что мы хотим запускать код ErrorHandler только в случае ошибки.

12345 Выйти из подводной лодкиErrorHandler:MsgBox "Если ошибка, то выйдите из Sub"Выйти из подводной лодкиКонец подписки

Если запустить Sub, произойдет ошибка из-за деления на ноль. В этот момент будет выполнен код обработки ошибок. Появится окно сообщения, и подпрограмма будет закрыта.

Изображение 1. VBA при ошибке Exit Sub

Если вы хотите узнать, как завершить выполнение кода в VBA, щелкните по этой ссылке: VBA End

Если вы хотите узнать, как выйти из подпрограммы или функции, щелкните по этой ссылке: VBA Exit Sub или Function

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave