这段代码运行时,怎么还会弹出“除零错误”的窗口阿?怎么不能弹出“Err2”消息框?? 
   Dim i As Integer
    On Error GoTo Err1
    i = 2 / 0
    MsgBox "Ok1"
    GoTo Ok1
Err1:
    MsgBox "Err1"
Ok1:
    On Error GoTo Err2
    i = 3 / 0
    MsgBox "ok2"
    GoTo Ok2
Err2:
    MsgBox "Err2"
Ok2:
    MsgBox "完成"

解决方案 »

  1.   

    VbKing(VBKing) :谢谢,从那里设置的,我刚用vb,不太清楚从那里设置。
      

  2.   

    一个“允许的”错误处理程序是由 On Error 语句打开的一个处理程序;一个“活动的”错误处理程序是处理错误的过程中允许的错误处理程序。如果在错误处理程序处于活动状态时(在发生错误和执行 Resume、Exit Sub、Exit Function 或 Exit Property 语句之间这段时间)又发生错误,则当前过程的错误处理程序将无法处理这个错误。一个过程只能处理一次错误,所以不能弹出“Err2”消息框
      

  3.   

    因為當你運行到err1時,已經出現了一個錯誤,在這個錯誤之間又發生了錯誤,錯誤處理程式將無法再處理此錯誤。
      

  4.   

    如果你不信,可以用這條來試試
        On Error Resume Next
        i = 2 / 0
        MsgBox "Ok1"
        GoTo Ok1
    Err1:
        MsgBox "Err1"
        Ok1:
        On Error GoTo Err2
        i = 3 / 0
        MsgBox "ok2"
        GoTo Ok2
    Err2:
        MsgBox "Err2"
    Ok2:
        MsgBox "完成"End Sub