在VBA中使用error handling

我想弄清楚是否有可能为我的所有潜艇有一个单一的error handling程序? 我处于一种情况,即在出现错误时需要退出子节点,并跳过所有下一个子节点。

Sub Runall() Call A Call B Call C Call D End sub 

现在,如果在亚AI中有一个错误不想运行B,C,D和B的相同的东西。我应该把我的error handling程序? 我实际上非常困惑,因为如何使用EXIT语句很重要。 请指教。

尝试这个

  Sub Runall() Call A On Error GoTo Errhandler Call B On Error GoTo Errhandler Call C On Error GoTo Errhandler Call D On Error GoTo Errhandler ' Exit the macro so that the error handler is not executed. Exit Sub Errhandler: ' If an error occurs, display a message and end the macro. MsgBox "An error has occurred. The macro will end." End sub 

这是我该怎么做的。
包括On Error GoTo Handler:在调用子。

一旦这些子提出一个On ErrorRunAll On Error 将接pipe (因为如果一个子丢失error handling程序它将尝试使用调用子的error handling程序),并与其GoTo将跳过一切,直到它看到Handler

记住,在Handler程序之前,您需要在Handler中包含Exit Sub或VBA,而不pipe您是否有错误。

这是一个令人失望的例子:

 Sub RunAll() On Error GoTo Handler Call A Call B Exit Sub Handler: Debug.Print "testing" End Sub 

一个

 Sub A() Dim fail As Integer fail = 1 / 1 End Sub 

 Sub B() Dim fail As Integer fail = 1 / 0 End Sub