Добрый день!
Необходимо построить обработку ошибок с двумя разными метками выхода (всё в цикле):
1. Если возникает ошибка до условия If, то просто переходим на End Sub.
2. Если возникает ошибка в условии If, то переходим на Netx.
Прошу помочь разобраться почему на срабатывает макрос
. Спасибо.
Грузить файлы запрещено в организации, поэтому опишу пример.
Есть книга со значениями на Листе1 [A1:A5]={1;2;3;4;5} и макрос:
Необходимо построить обработку ошибок с двумя разными метками выхода (всё в цикле):
1. Если возникает ошибка до условия If, то просто переходим на End Sub.
2. Если возникает ошибка в условии If, то переходим на Netx.
Прошу помочь разобраться почему на срабатывает макрос

Грузить файлы запрещено в организации, поэтому опишу пример.
Есть книга со значениями на Листе1 [A1:A5]={1;2;3;4;5} и макрос:
Код |
---|
Sub test() Dim i%, x# [B:B].ClearContents For i = 1 To 10 On Error GoTo errH1 If Cells(i, 1).Value > 3 Then On Error GoTo errH2 x = 1 / 0 End If 'Если ошибка в условии цикла, значит Netx errH2: If Err.Number > 0 Then Cells(i, 2).Value = "Ошибка 2" Err.Clear End If Next 'Если ошибка перед условием цикла, значит End errH1: If Err.Number > 0 Then Cells(i, 2).Value = "Ошибка 1" End If End Sub |