excel - 工作簿自动打开 + MsgBox 作为用户响应的运行时错误
问题描述
我试图将 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
解决方案
如果你正在调用一个不存在的 sub,你会得到一个Compile Error
.
您可以通过转到VBE>Debug>Compile VBAProject来检查这些错误(或者只是尝试运行宏)
Compile Errors
, 很像Syntax Errors
, 必须在运行子程序之前处理。因此,这些错误不能用诸如此类的代码来处理,On Error GoTo EH
或者On Error Resume Next
因为这些错误仅在子程序实际运行时才被激活。
您可以通过生成常见的编译错误或语法错误并尝试单步执行代码 ( F8
) 来说服自己。您会注意到错误发生在您的Sub [Name] ()
线路上,这表明您在错误发生之前从未真正输入过您的 sub。因此,您可以直观地看到您的错误处理程序实际上永远不会被激活,从而导致显示错误消息。
一旦你考虑了所有的编译/语法错误,你可以查看这个链接,它将解释Run Time Errors
当你从一个 sub 调用其他 sub 过程时如何处理。
推荐阅读
- speech-recognition - 使用阿里云进行实时翻译
- bash - 如何在bash中将任何文件传递给utf-8
- python - 从 realsense API 或 Open3D 库可视化点云
- ios - 从 AppDelegate 调用导航控制器的子视图控制器
- php - 使用 Cortex 模型和 REST 去脂
- c - 代码在 IDE 上运行,但不在 Linux 机器上运行 - C
- python - 修改 Python easysnmp 模块在“oid”和“oid_index”中返回的 OID 部分
- html - TailwindCSS justity-between 忽略子大小
- docker - 如何使用 helm3 创建部署,从 docker hub 提取图像?
- scala - 在scala中,如何真实地获取变量的声明类型?