Excel 如何启用事件以便调用工作簿\u BeforeSave
保存前未调用MyExcel 如何启用事件以便调用工作簿\u BeforeSave,excel,vba,Excel,Vba,保存前未调用My工作簿\u 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 这可能是正常的,因为
工作簿\u 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
这不会改变任何事情,保存时仍不会调用工作簿\u BeforeSave。但当我关闭excel文件时,会显示以下错误消息:
英文翻译为“编译错误:程序外的错误指令。”
显然,Application.Events=True
不在正确的位置,但是我应该把它放在哪里?希望这些可以帮助:
Private子工作簿\u保存前(ByVal SaveAsUI为布尔值,Cancel为布尔值)
必须位于VBA项目中的thiswoolk
内
Application.EnableEvents=True
不能插入过程或函数外部
选项explicit和
工作簿\u BeforeSave
子例程之间的代码未运行,因为它未被调用。我认为您必须添加一个额外的子项,手动运行该子项以启用事件。首先是Application.EnableEvents=True
。第二,也是更重要的一点,您需要弄清楚事件被禁用的原因。;)@Goosebumbs:实际上问题是:如何自动启用事件。@Rory:感谢您指出它是Application.EnableEvents=True
。似乎默认情况下禁用了事件。是否有自动启用事件的方法?默认情况下不能禁用事件-必须在代码中禁用它们。您确定已启用宏吗?如果是这样,那么一定有代码在某个地方禁用事件。