У VBA для завершення виконання ВСІХ кодів використовуйте Кінець команду.
1 | Кінець |
Коли відбувається виконання коду Кінець, він негайно завершить виконання і вийде з програми.
Якщо ви хочете дізнатися, як вийти з Sub на помилку, натисніть це посилання: VBA On Error Exit Sub
Якщо ви хочете дізнатися, як вийти з підрозділу або функції, клацніть на цьому посиланні: VBA Вийти з суб -функції або функції
Закрийте весь код у VBA
На прикладі ви побачите, що відбувається, коли ми використовуємо Кінець команда у VBA. Ми створили Sub EndSub, який має Кінець команда всередині. Цей суб викликається з CallEndSub. Ось код:
123456789101112131415161718 | Приватний Sub EndSub ()Dim i як ціле числоДля i = 1-10Якщо i = 5 ТодіMsgBox "Значення i" & iКінецьЗакінчити ЯкщоДалі iEnd SubПриватний додатковий викликEndSub ()Викличте EndSubMsgBox "Закінчити саб"End Sub |
В EndSub, ми спочатку вводимо цикл For, якщо значення i менше 10:
123 | Для i = 1-10Далі i |
Після цього ми перевіряємо, чи значення i дорівнює 5, за допомогою команди If. Якщо значення 5, ми повертаємо вікно повідомлення зі значенням i і використовуємо команду Кінець.
1234567 | Якщо i = 5 ТодіMsgBox "Значення i" & iКінецьЗакінчити Якщо |
Якщо умова не виконується, наступне твердження збільшує i на 1 і знову входить у цикл For:
1 | Далі i |
В CallEndSub, ми спочатку викликаємо Sub EndSub:
1 | Викличте EndSub |
Після цього ми повертаємо вікно повідомлення:
1 | MsgBox "Закінчити саб" |
Якщо ви запускаєте CallEndSub, він спочатку викликає EndSub. Якщо ви виконаєте цей код у режимі налагодження, ви побачите, що він пройде цикл 5 разів. У 5го ітерації, значення змінної i стає 5, а код входить у тіло If. Тепер MsgBox “Значення i” та i виконується і Кінець після того:
Зображення 1. Кінець VBA
Як бачите, виконання коду припиняється одразу після Кінець команду, тому MsgBox "Закінчити саб" ніколи не виконується.