我有一个声明:
on error go to label
但是我想将导致错误的变量传递给标签
这可能吗?
答案 0 :(得分:4)
您可以使用Err来获取错误号和描述
Sub|Function SomeName()
On Error GoTo Err_SomeName ' Initialize error handling.
' Code to do something here.
Exit_SomeName: ' Label to resume after error.
Exit Sub|Function ' Exit before error handler.
Err_SomeName: ' Label to jump to on error.
MsgBox Err.Number & Err.Description ' Place error handling here.
Resume Exit_SomeName ' Pick up again and quit.
End Sub|Function
答案 1 :(得分:3)
首先,我认为你的意思是:
on error goto label
不,你不能使用goto命令传递变量。但是,您可以查看Err.Description了解详细信息,如果您提出自己的错误,可以执行以下操作:
' Raise a custom error.
Err.Raise Number:=vbObjectError + 1000, _
Source:="TestRaiseCustomError", _
Description:="My custom error description."
因此,如果您提出自己的错误,可以将Source设置为导致问题的字段。
有关详细信息,请参阅this link上的使用Err对象的提升方法提高自定义错误部分。
答案 2 :(得分:0)
我想不出一个聪明的方法。我通常有一个错误handeling类/函数,我可以使用“on error goto”将错误传递给底部块然后调用错误handeling函数。这样做的好处是有一个集中的错误处理程序很好,但你也可以自定义它,所以在我的情况下,我传递崩溃的过程的名称。它并不漂亮,但如果你真的想要传递一组变量(取决于你有多少)或者设置一些东西来根据行号来识别变量(你必须加上它...) )
on error goto err
'Code
err:
ErrorHandeler err, "String with Procedure name"
答案 3 :(得分:0)
声明全局变量并在代码和错误代码中使用它们。
Public global_variable1 As Integer
Public global_variable2 As String
Private Sub Btn1234_Click()
....
end sub
Err_abcd:
....
End Sub