Может ли кто-нибудь объяснить мне, что означает этот код? Я предполагаю, что если ошибка произошла, перейдите в раздел ErrHandler, но почему в конце есть резюме следующего конца и Exit sub inbetween?Что происходит, возобновление следующего в конце кода означает в vba?
On Error Goto ErrHandler:
N = 1/0 ' cause an error
'
' more code
'
Exit Sub
ErrHandler:
' error handling code
Resume Next
End Sub
Я также написал короткий код, чтобы лучше понять. Если вы запустите его в VBA excel, вы получите 4 числа, которые появляются по порядку: 1,2,2,4 Я понимаю первые 2 числа, но почему это третий номер 2 и последний 4? btw для этого примера ошибка не возникла.
On Error Goto Err:
n = 1
MsgBox n
Err:
n = 2
MsgBox n
Resume Next
MsgBox 4
Resume Next
End Sub
и когда я изменил Resume Next для резюме, я получил 1, а затем продолжал получать только 2s, довольно изменение ! – excel34
Вы захотите добавить Exit Sub до Err :, потому что в реальном коде вы не хотите, чтобы ваш код обработки ошибок запускался, если ошибок нет. Если вы хотите увидеть, что происходит с вышеуказанным кодом, вы должны установить точку останова и запустить код, используя F8, чтобы пройти через него. Это позволит вам увидеть порядок выполнения кода. Если ошибок нет Возобновление и возобновление Далее переведите выполнение кода в начало обработчика ошибок. Resume помещает вас в бесконечный цикл возврата к началу обработчика ошибок, а Resume Next позволяет обойти его после его вызова. –