My Workbook_BeforeSave
保存前未调用事件
这是我的代码:
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
a = MsgBox("Do you really want to save the workbook?", vbYesNo)
If a = vbNo Then Cancel = True
End Sub
这可能是正常的,因为事件可能未启用。
现在我试着把Application.Events = True
像这样:
Option Explicit
Application.Events = True
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
a = MsgBox("Do you really want to save the workbook?", vbYesNo)
If a = vbNo Then Cancel = True
End Sub
这不会改变任何东西,保存时仍然不会调用 Workbook_BeforeSave 。但是当我关闭Excel文件时,会显示以下错误消息:
英文翻译是“编译错误:程序之外的指令不正确”。
显然是Application.Events = True
位置不对,但是我应该把它放在哪里?
希望这些会有所帮助:
-
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
必须在里面ThisWorkbook
在 VBA 项目中。
-
Application.EnableEvents = True
不能插入外部过程或函数。
-
默认情况下启用事件。因此,vba 项目内一定有某个地方事件被禁用。这可以通过以下方式搜索:
进入 VBA 项目后,按 Ctrl+F 打开“查找”对话框。然后在当前项目中搜索application.enableevents。按“查找下一个”。请参见下图。
-
您可以使用一个小子来更改和查看 Application.EnableEvents 状态(开/关)。将子模块放置在任何标准模块下。请参见下图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)