2014-12-01 2 views
0

Мне нужен простой код обработки ошибок для моего небольшого макроса, у меня есть поиск в Интернете, но ничего простого, похоже, все очень сложно.Простая обработка ошибок в Excel VBA

Я загружаю отчеты о продажах в формате .txt на еженедельной основе, я запускаю отдельный макрос, чтобы делать материал, а затем добавляю на главную страницу. Не каждую неделю загружаются отчеты о продажах, поскольку, возможно, не были продажи для этого конкретного региона.

Мне нужен простой обработчик ошибок, так что, если он не находит отчет, он перемещается в следующий подраздел.

Любая помощь оценили

Sub MXM_POS() 

    Workbooks.OpenText Filename:="C:\Users\903270\Documents\Excel\MXMPOS*.txt" 

    ‘Run macro code 

    Run ("DLK_POS") 

End Sub 

ответ

0

Вот простая базовая структура, которую можно расширить при необходимости:

Sub MXM_POS() 
    On Error GoTo ErrHandler 

    ' code here 

ExitSub: 
    ' shutdown code here 
    Exit Sub 

ErrHandler: 
    If Err.Number <> 0 Then 
     Dim mbr As VbMsgBoxResult 
     mbr = MsgBox(_ 
      "Error #" & Err.Number & ": " & Err.Description & vbNewLine & _ 
      "Would you like to continue?", vbExclamation Or vbYesNo) 

     If mbr = vbYes Then Resume ExitSub 
     Application.Quit 
    End If 
End Sub 

Когда я хочу дамп стека, который я создаю, что в Исходной собственностью Err, используя конкатенацию с новой строкой, а затем отображает результат MsgBox в верхней части вызывающего стека, обычно либо обработчик событий, запускающий код или макрос верхнего уровня, вызываемый пользователем.

Смежные вопросы