Страницы: 1
RSS
Обработчик ошибки On Error go To работает не верно
 
Добрый день Уважаемые знатоки VBA. Написал код, добавил в него обработчик ошибок, но макрос ведет себя очень странно. При первом запуске макроса в книге срабатывает обработчик ошибки On Error GoTo LableErrorFile445
Код
 On Error GoTo LableErrorFile445:
    
    Windows("База").Activate
    Sheets("База") .Unprotect Password:="2014"
    If ActiveSheet.AutoFilterMode = True Then
    On Error GoTo LableOPEN:
    ActiveSheet.ShowAllData
    End If
при том, что файл с названием База открыт. Если же запустить макрос снова, то он работает как надо, т.е. запускается со второго раза, подскажите в чем может быть проблема, может быть я в том месте добавил строку кода ?

Код и книга во вложении.
 
смотрим на 3 строки кода:
Код
On Error GoTo LableErrorFile445:
Windows("База").Activate
Sheets("База регистрации рейсов").Range("B2").Select 
если в файле "База" активен лист "База регистрации рейсов" — ошибки не будет
если любой другой лист — будет ошибка при активации ячейки на неактивном листе
оттого и переход на LableErrorFile445
 
Игорь, но если убрать активацию ячейки, а чисто оставить строку переключения на окно книги, то получается аналогичная ошибка
Код
On Error GoTo LableErrorFile445:
Windows("База").Activate
И что самое удивительное, что после повторного запуска, макрос работает стабильно. Может быть в конце кода я не верно сгруппировал процедуры:
Код
End

LableErrorFile445: OutPut = MsgBox("Файл База не найден.", vbInformation)
Windows("export").Activate
ActiveWorkbook.Close savechanges:=False
Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.DisplayStatusBar = True
Application.DisplayAlerts = True

End

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.DisplayStatusBar = True
Application.DisplayAlerts = True

End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.DisplayStatusBar = True
Application.DisplayAlerts = True
 
Избавляйтесь вообще от всех активаций и селектов - будет проще жить. И быстрее.
Страницы: 1
Читают тему
Наверх