随机断点的原因未知

时间:2015-11-20 03:26:05

标签: excel vba excel-vba random

对于通过Application.OnTime Now + TimeSerial(x,x,x)运行重复循环的Excel VBA代码,这是一个漫长而未解决的问题。用户会发现他们的代码运行正常几天,可能会或可能不会神秘地停止。

我面对这样的情况并希望解决它。我已经阅读了30多个论坛答案,其中一些是由经验丰富的开发人员撰写的,并得出了这样的理解。我的结论和问题随之而来。

结论是Excel 随机进入break mode,但没有人知道原因为什么会发生这种情况,更重要的是,为什么它会随机发生。< / p>

我们接着得出结论,实际上这是随机发生的吗?而Excel VBA并不像其他语言一样强大。

一些注意事项:

  1. 我知道可以通过按Ctrl+Break两次来解决这个问题。它并没有解释为什么我们必须首先做到这一点。
  2. 我意识到这个错误与代码无关。它会出现在简单和涉及的程序中。
  3. 尝试多种方法来模拟此错误后,我的意思是很多 - 多个ADODB SQL连接和查询,在宏运行时进行单元格编辑,使用多次和1秒Application.OnTime递归调用,我可以&# 39; t复制错误。它确实是随机的。
  4. 我只运行一个工作簿和一个Excel实例。
  5. 有人说,对于我们在调试中所做的每个断点,该断点仍然在内存中。然后当我们将来运行一个宏时,对该部分内存的写入会触发这个随机中断。这 是一个似是而非的解释,并且确实认为此错误是随机的。我们无法在VBA中检查内存。
  6. 即使不解决这个问题,我也需要一些东西可以作为我老板的证明。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个错误!我之前没有读过这个问题的答案,因此Excel社区收到此信息至关重要。

只要发生这种情况,Excel就无法在Application OnTime队列中调用其子例程。您已经开始编辑单元格,保持编辑模式,然后通过最小化窗口或单击另一个窗口来关闭Excel。

Application OnTime队列中的所有子例程将一直等到单元格完成编辑。因此,一旦切换回Excel,单元格将关闭编辑模式,然后所有子程序都将运行。

我真的很感动我自己解决了这个问题。