我知道我的头衔有点令人困惑,但这就是我遇到的问题.我基本上有一张表作为各种包装.它能够顺序运行大量宏,这是通过Userform完成的.基本上,你选中复选框,如果选中它,它会运行宏.我想要做的是,如果有错误,我希望它返回它所在的子目录.
我的第一个想法是在我的if语句中运行sub以放置On Error语句,但是这不起作用,因为错误处理转到被调用的sub并忽略它之前的内容.
我该怎么办?这可能吗?
你可以这样做:
Sub ErrorHandler()
On Error GoTo ErrHandler
Call Proc1
Call Proc2
Call Proc3
Exit Sub
ErrHandler:
MsgBox Err.Source & vbCrLf & Err.Description
End Sub
Sub Proc1()
On Error GoTo ErrHandler
' Your code block start
' Your code block end
Exit Sub
ErrHandler:
Err.Raise 513, "Proc1", "Customer Error Message 1|" & Err.Description
End Sub
Sub Proc2()
On Error GoTo ErrHandler
' Your code block start
' Your code block end
Exit Sub
ErrHandler:
Err.Raise 513, "Proc2", "Customer Error Message 2|" & Err.Description
End Sub
Sub Proc3()
On Error GoTo ErrHandler
' Your code block start
' Your code block end
Exit Sub
ErrHandler:
Err.Raise 513, "Proc3", "Customer Error Message 3|" & Err.Description
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
550 次 |
| 最近记录: |