【发布时间】:2012-01-11 12:38:14
【问题描述】:
更新:问题已解决 我的一位同事在 Workbook_BeforeSave() 期间更改了一个单元格,但没有禁用事件,因此触发了 Worksheet_Change()。是的,很傻,但至少这是我们的错,而不是 Excel 的
我注意到每当我在 Excel 中按 Ctrl+S 时,Worksheet_Change() 在Workbook_BeforeSave() 之前被触发。是否可以使用 VBA 代码抑制这种行为,但不抑制所有事件(即没有Application.EnableEvents = false)?
无论我在做什么,都会发生这种情况。我读到有人对 ComboBoxes 有类似问题,但我没有编辑 ComboBoxes,但 Worksheet_Change() 总是在保存之前触发。
有什么想法吗?我只是想弄清楚如何在保存文档时绕过Worksheet_Change() 中的一些代码,因为该代码只应该在用户实际更改某些内容时执行,而不是在保存工作簿时执行。储蓄绝不会改变...
【问题讨论】:
-
这是在所有文件上还是在一个工作簿上?如果单个工作簿 dO 您有任何可能在该工作簿中保存时触发的易失性函数?
-
只有活动工作簿受到影响。不,我的工作簿中没有 volatile 函数。
-
刚用干净的工作簿试了下,没有出现这个问题。我不知道我在第一本工作簿中做错了什么,但我正在努力。将发布我发现的任何内容。
-
如果您尝试“重生”问题工作簿 [通过 (1) 选择所有工作表,右键单击、移动或复制并为“to:book”选择(新书),(2) 复制问题工作簿的
ThisWorkBook模块中的代码结束] 那么它会再次发生吗? -
问题已结束。我的一位同事在
Workbook_BeforeSave()期间更改了一个单元格而没有禁用事件,因此触发了Worksheet_Change()。是的,很傻,但至少这是我们的错,不是 Excel 的。