有人可以解釋我這個代碼的含義嗎? 我想它是否發生錯誤轉到ErrHandler部分,但爲什麼在最後有一個簡歷和Exit Sub inbetween?接下來會在vba的代碼結尾代表什麼?
On Error Goto ErrHandler:
N = 1/0 ' cause an error
'
' more code
'
Exit Sub
ErrHandler:
' error handling code
Resume Next
End Sub
我也寫了一個簡短的代碼,以獲得更好的理解。 如果你在VBA excel中運行它,你將得到4個按順序彈出的數字:1,2,2,4 我理解前兩個數字,但爲什麼是第三個數字2和最後一個數字4? btw對於這個例子沒有發生錯誤。
On Error Goto Err:
n = 1
MsgBox n
Err:
n = 2
MsgBox n
Resume Next
MsgBox 4
Resume Next
End Sub
,當我改變繼續下一步將繼續進行,我得到了1,然後不停地只得到2秒,相當改變! – excel34 2010-01-03 21:33:22
您將需要在Err之前添加Exit Sub,因爲在實際代碼中,如果沒有錯誤,您不希望錯誤處理代碼運行。如果你想看看上面的代碼發生了什麼,儘管你應該設置一個斷點並使用F8運行代碼來遍歷它。這將允許您查看代碼執行的順序。當沒有錯誤時,繼續和繼續下一步將代碼執行移動到錯誤處理程序的開頭。恢復使您回到錯誤處理程序開始的無限循環,而Resume Next允許您在調用它時繞過它。 – 2010-01-03 22:09:52