如何在Workbook_BeforeSave之前停止执行Worksheet_Change的Excel?
更新:已解决 的问题我的同事在Workbook_BeforeSave()
期间更改单元格,而不禁用事件,因此触发了Worksheet_Change()
。 是的,愚蠢的,但至less这是我们的错,不是Excel的
我注意到,每当我在Excel中按Ctrl + S时, Worksheet_Change()
在Workbook_BeforeSave()
之前被触发。 是否有可能抑制这种行为使用VBA代码,但没有抑制所有事件(即没有Application.EnableEvents = false
)?
无论我在做什么,都会发生这种情况。 我已经阅读过与ComboBoxes有类似问题的人,但是我没有编辑ComboBoxes,但是Worksheet_Change()
始终在保存之前触发。
有任何想法吗? 我只想弄清楚当保存文档时如何绕过Worksheet_Change()
一些代码,因为只有在用户实际更改某些内容(而不是保存工作簿)时应该执行该代码。 储蓄绝不会改变…
这是我们的编码错误:
我的同事在Workbook_BeforeSave()期间正在更改单元格,而不禁用事件,因此触发了Worksheet_Change()。
修复很简单。 在Workbook_BeforeSave()中:
Application.EnableEvents = False ' Some final changes Application.EnableEvents = True
就是这样:)
添加一个全局标志variables。
input一个按下按键时触发的函数,如果CTRL + S将标志设置为true,
如果此标志为true,则worksheet_change事件应该短路。
而workbook_aftersave应该把它改回false。