我正在开发一个基于复杂电子表格的解决方案。有时用户会遇到一个问题,表单中的事件似乎不再被Excel捕获。
我目前无法复制这种行为,但是我已经看到有问题的PC了,我可以确认,尽管在下面放了一个断点,但没有一个被称为:
Worksheet_Activate()
Worksheet_Deactivate()
Worksheet_Change(ByVal目标范围)
Worksheet_BeforeDoubleClick(ByVal Target As Range,Cancel As Boolean)
这当然可以通过旧的经典“你厌倦了再打开它(Excel)来解决”,但我想知道这是怎么发生的,以及如何防止它?
我甚至将Stop / MsgBox“blah”放入方法中,看看它是否只是VBE中的断点,但我没有得到任何东西。
所以,任何人都知道为什么excel不会提出这些事件?
干杯。
FRD
答案 0 :(得分:4)
检查您的代码:
Application.EnableEvents=False
如果您将其关闭,Excel会在您的程序结束时再次打开它,所以请务必在程序结束时将此参数设置为TRUE。
如果你在程序开始时将它设置为False并且在再次设置为True之前停止你的程序,那么它将保持关闭状态。
如果您的代码在到达Application.EnableEvents=True
行之前崩溃,那么它也将保持关闭状态。
答案 1 :(得分:0)
我在一张没有包含任何公式的表格上曾经遇到过这个问题...... 这就是Excel没有执行Calculate Event的原因!
注意..计算事件我需要在数据表被过滤时触发一些代码..所以我最终做的是添加一个小的Sum(),指向隐藏单元格中表格中的一列有趣的是,每次过滤纸张时都会触发计算事件:)