Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel事件被忽略/不再被捕获,即工作表\未在更改时输入更改_Vba_Excel_Excel 2007_Vbe - Fatal编程技术网

Vba Excel事件被忽略/不再被捕获,即工作表\未在更改时输入更改

Vba Excel事件被忽略/不再被捕获,即工作表\未在更改时输入更改,vba,excel,excel-2007,vbe,Vba,Excel,Excel 2007,Vbe,我正在开发一个基于电子表格的复杂解决方案。有时,用户会遇到这样的问题:Excel似乎不再捕获工作表中的事件 目前我无法复制这种行为,但我已经访问了相关PC,我可以确认,尽管在以下位置设置了断点,但没有调用任何一个: 工作表_Activate() 工作表_停用() 工作表\u更改(ByVal目标作为范围) 双击前的工作表(ByVal目标作为范围,取消作为布尔值) 当然,这将通过古老的经典“你是否厌倦了再次打开和关闭它(Excel)”来解决,但我想知道这是如何发生的,以及如何防止它 我甚至在方法中加

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

目前我无法复制这种行为,但我已经访问了相关PC,我可以确认,尽管在以下位置设置了断点,但没有调用任何一个:

工作表_Activate()
工作表_停用()
工作表\u更改(ByVal目标作为范围)
双击前的工作表(ByVal目标作为范围,取消作为布尔值)

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

我甚至在方法中加入Stop/MsgBox“blah”来查看它是否只是VBE中的断点,但我没有得到任何相关信息

那么,有人知道为什么excel不是唯一一个提出这些活动的人吗

干杯

FRD检查您的代码以了解:

Application.EnableEvents=False
如果将其关闭,Excel将不会在产品结束时再次打开它,因此请确保在过程结束时将此参数设置为TRUE

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

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

检查您的代码:

Application.EnableEvents=False
如果将其关闭,Excel将不会在产品结束时再次打开它,因此请确保在过程结束时将此参数设置为TRUE

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


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

我曾经在不包含任何公式的工作表中遇到过此问题。。。 这就是为什么Excel没有执行Calculate事件的原因


注。。如果数据表被过滤,我需要触发一些代码的Calculate事件。。因此,我最后做的是添加一个小的Sum(),它指向我表格中隐藏单元格中的一列,有趣的是每次筛选工作表时都会触发calculate事件:)

我曾经在一个不包含任何公式的工作表中遇到过此问题。。。 这就是为什么Excel没有执行Calculate事件的原因


注。。如果数据表被过滤,我需要触发一些代码的Calculate事件。。因此,我最终添加了一个小Sum(),它指向我表中隐藏单元格中的一列,并且非常有趣,每次筛选工作表时都会触发calculate事件:)

以及您的代码,请记住,其他人的代码可以执行相同的语句(如果他们运行多个加载项)。根据我的经验,关闭事件然后立即崩溃的绝不是我的代码。@Chris R上的+1。特别是当语句出现在“OnCalculation”事件中时要小心。当您的工作簿计算/重新计算时,Excel也会在每个打开的工作簿上触发任何计算过程。谢谢您的回答。有一个方法确实正在设置。EnableEvents=False。有一个选择是静默失败,并且两个错误处理部分都没有将其设置回True,这一点现在已经得到纠正。除了您的代码之外,请记住其他人的代码可以执行相同的语句(如果他们运行多个加载项)。根据我的经验,关闭事件然后立即崩溃的绝不是我的代码。@Chris R上的+1。特别是当语句出现在“OnCalculation”事件中时要小心。当您的工作簿计算/重新计算时,Excel也会在每个打开的工作簿上触发任何计算过程。谢谢您的回答。有一个方法确实正在设置。EnableEvents=False。有一个选择是静默失败,并且两个错误处理部分都没有将其设置回True,这一点现在已经得到纠正。干杯