0

我正在研究一个基于电子表格的复杂解决方案。有时,用户会遇到工作表中的事件似乎不再被 Excel 捕获的问题。

我目前无法复制这种行为,但我已经访问了有问题的 PC,我可以确认尽管在以下位置设置了断点,但它们都没有被调用:

Worksheet_Activate()
Worksheet_Deactivate()
Worksheet_Change(ByVal Target As Range)
Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

这当然可以通过古老的经典“你是否厌倦了再次打开和关闭它(Excel)”来解决,但我想知道这是怎么发生的,以及如何防止它?

我什至将 Stop / MsgBox "blah" 放入方法中,以查看它是否只是 VBE 中的断点,但我没有得到任何结果。

那么,有人知道为什么 excel 不再引发事件了吗?

干杯。

FRD

4

2 回答 2

4

检查您的代码:

Application.EnableEvents=False

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

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

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

于 2011-02-15T15:04:22.490 回答
0

我曾经在不包含任何公式的工作表上遇到过这个问题......这就是 Excel 不执行计算事件的原因!

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

于 2017-02-03T02:49:14.417 回答