Workbook Auto Open + MsgBox的运行时错误,作为用户

时间:2018-06-17 16:38:53

标签: excel excel-vba vba

我试图将MsgBox放入我的代码中。只有在调用Table.auto_open不起作用时才应显示它。

在我的最终文档中,很少有这些Call语句,如果一个或几个Call语句不起作用,我只想获得msgbox。 例如,“Auto_open”将更改为“auto_op”,这自然是不可能的,因为在实际工作表中它是“Auto_open”。 或者在另一个示例中,“Auto_open”中的代码被破坏。

我需要一些帮助。它似乎很简单,但我认为不可能在那个地方放置那个“On Error GoTo”代码,因为Call不会给我一个真正的错误?

有人能说我做错了什么吗?我已经尝试了错误处理的所有组合,没有任何作用。

Private Sub Workbook_Open()

On Error GoTo Error
 Call Tabelle1.auto_open
Exit Sub
 Error:
 MsgBox "Failure"
Resume Next
End Sub

1 个答案:

答案 0 :(得分:2)

如果您正在调用不存在的子,您将获得Compile Error

您可以转到 VBE>调试>编译VBAProject (或只是尝试运行宏)来检查这些错误

Compile Errors,与Syntax Errors非常相似,必须先处理 才能运行sub。因此,使用On Error GoTo EHOn Error Resume Next等代码无法处理这些错误,因为只有在子实际运行时才会激活这些错误。

您可以通过生成常见的编译错误或语法错误并尝试单步执行代码(F8)来说服自己。您会注意到Sub [Name] ()行发生错误,这表示您在错误发生之前从未实际输入过子。因此,您可以直观地看到您的错误处理程序永远不会被激活,从而导致显示错误消息。

一旦考虑了所有编译/ Sytax错误,您可以查看this link,这将解释当您从子系统调用其他子过程时如何处理Run Time Errors