Excel事件被忽略/不再被捕获,即在更改时未输入Worksheet_Change

时间:2011-02-15 14:42:22

标签: excel vba excel-vba excel-2007 vbe

我正在开发一个基于复杂电子表格的解决方案。有时用户会遇到一个问题,表单中的事件似乎不再被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

2 个答案:

答案 0 :(得分:4)

检查您的代码:

Application.EnableEvents=False

如果您将其关闭,Excel会在您的程序结束时再次打开它,所以请务必在程序结束时将此参数设置为TRUE。

如果你在程序开始时将它设置为False并且在再次设置为True之前停止你的程序,那么它将保持关闭状态。

如果您的代码在到达Application.EnableEvents=True行之前崩溃,那么它也将保持关闭状态。

答案 1 :(得分:0)

我在一张没有包含任何公式的表格上曾经遇到过这个问题...... 这就是Excel没有执行Calculate Event的原因!

注意..计算事件我需要在数据表被过滤时触发一些代码..所以我最终做的是添加一个小的Sum(),指向隐藏单元格中表格中的一列有趣的是,每次过滤纸张时都会触发计算事件:)