Я пытаюсь добавить обработку ошибок для одного из кода.Я назначаю лист с определенным именем объектам листа, теперь я пытаюсь добавить операторы OnError
, если в случае, если пользователь изменяет имена листов, код должен изящно выйти из подпрограммы после отображения сообщения для исправления имен файлов.
Но проблема в том, что, поскольку я предоставляю структуру, как показано ниже, код дополнительного выхода всегда выполняется, даже если имя файла в порядке.
Проблема в том, что, поскольку я предоставляю подробности в структуре, как показано ниже, код дополнительного завершения всегда выполняется, даже если имя файла в порядке.
Private Sub DoSomething()
On Error GoTo CleanFail
'...code...
CleanExit:
'cleanup code here
Exit Sub
CleanFail:
If Err.Number = 9 Then 'subscript out of range
Err.Clear
Resume Next
Else
MsgBox Err.Description
Resume CleanExit
End If
End Sub
On Error GoTo ErrorFailLoad
Set LoadSheet = Application.ActiveWorkbook.Worksheets("Load_Template")
ErrorExit:
End Sub
ErrorFailLoad:
MsgBox "Main File name must be Load_Template. Please change and re-run Macro"
Resume ErrorExit
On Error GoTo ErrorFailEquip
Set EquipSheet = Application.ActiveWorkbook.Worksheets("EQUIP")
ErrorExit:
End Sub
ErrorFailEquip:
MsgBox "Equipment File name must be EQUIP. Please change and re-run Macro"
Resume ErrorExit
Я ожидаюкод, чтобы просто проверить, если имя файла не доступно, затем просто показать сообщение об ошибке и выйти.Фактические результаты - выход кода даже после правильного имени файла.