В VBA, чтобы завершить выполнение ВСЕГО кода, используйте Конец команда.
1 | Конец |
Когда выполнение кода дойдет до Конец, он немедленно завершит выполнение и выйдет из программы.
Если вы хотите узнать, как выйти из подпрограммы при ошибке, щелкните по этой ссылке: VBA при ошибке Exit Sub
Если вы хотите узнать, как выйти из подпрограммы или функции, щелкните по этой ссылке: VBA Exit Sub или Function
Выйти из всего кода в VBA
Вы увидите на примере, что происходит, когда мы используем Конец команда в VBA. Мы создали Sub EndSub, который имеет Конец команда внутри. Этот Sub вызывается из CallEndSub. Вот код:
123456789101112131415161718 | Частный Sub EndSub ()Dim i как целое числоДля i = от 1 до 10Если i = 5, тоMsgBox "Значение i равно" & iКонецКонец, еслиДалее яКонец подпискиЧастная подписка CallEndSub ()Вызов EndSubMsgBox "End Sub"Конец подписки |
в EndSub, мы сначала входим в цикл For Loop, если значение i меньше 10:
123 | Для i = от 1 до 10Далее я |
После этого мы проверяем, равно ли значение i 5, используя команду If. Если значение равно 5, мы возвращаем окно сообщения со значением i и используем команду Конец.
1234567 | Если i = 5, тоMsgBox "Значение i равно" & iКонецКонец, если |
Если условие не выполняется, следующий оператор увеличивает i на 1 и снова входит в цикл For:
1 | Далее я |
в CallEndSub, сначала мы вызываем Sub EndSub:
1 | Вызов EndSub |
После этого возвращаем окно сообщения:
1 | MsgBox "End Sub" |
Если вы запустите CallEndSub, сначала он вызовет EndSub. Если вы выполните этот код в режиме отладки, вы увидите, что он пройдет цикл 5 раз. В 5th итерации значение переменной i становится равным 5, и код входит в тело If. Сейчас MsgBox «Значение i равно» & i выполняется и Конец после этого:
Изображение 1. Конец VBA
Как видите, выполнение кода останавливается сразу после Конец команда, поэтому MsgBox «End Sub» никогда не выполняется.