gpt4 book ai didi

excel - 如何启用事件以便调用 Workbook_BeforeSave

转载 作者:行者123 更新时间:2023-12-03 00:25:50 24 4
gpt4 key购买 nike

保存前未调用我的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 文件时,显示以下错误消息:

enter image description here

英文翻译为“编译错误:过程之外的指令不正确。”

显然 Application.Events = True 位置不正确,但我应该把它放在哪里?

最佳答案

希望这些会有所帮助:

  1. Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 必须位于 VBA 项目的 ThisWorkbook 内。

  2. Application.EnableEvents = True 无法插入到过程或函数之外。

  3. 事件默认启用。因此,vba 项目内一定有某个地方事件被禁用。可以通过以下方式搜索:

    进入 VBA 项目后,按 Ctrl+F 打开“查找”对话框。然后在当前项目中搜索application.enableevents。按“查找下一个”。请参见下图。

  4. 您可以使用一个小子来更改和查看 Application.EnableEvents 状态(开/关)。将子模块放置在任何标准模块下。请参见下图。

enter image description here

关于excel - 如何启用事件以便调用 Workbook_BeforeSave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26296597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com