У меня есть вопрос о On Error GoTo
. У меня есть эта строка кодаОб ошибке goto внутри if, реагирует ли она на любую ошибку на sub?
If CheckF = 0 Then
On Error GoTo Error_handler
.PivotItems(.PivotItems(pivotcount).name).Visible = False
End If
Мой вопрос заключается в том, что если у меня есть ошибка за пределами этого if
это спусковой крючок On Error
все равно
И если это так, я хотел бы иметь возможность избежать это, потому что мне нужно другое сообщение для каждой другой ошибки.
Надеюсь, я объяснил сам.
Если я это сделаю, а триггеры 'Error_handler'' On Error Goto 0' не будут активированы правильно? – VVV
'On Error GoTo 0' отключает любую обработку ошибок. VBA просто остановится на линии, где встречается ошибка (как это обычно бывает). Вы можете сделать это в 'Error_handler', но это неправильный способ сделать это. В 'Error_handler' вы должны использовать' Resume' или перейти на другую метку. Хорошей практикой является либо включить обработку ошибок для всего суб и обработать все ошибки, либо включить или отключить обработку ошибок «на том же уровне», как и в моем примере выше. –
Похоже, что в документе [On Error Statement] (http://stackoverflow.com/documentation/vba/3211/error-handling#t=201701111543262206472) необходимо упомянуть об этом :-) –