零星的自动化错误:发生异常,可能基于参考

Ben*_*301 2 excel vba excel-2007 excel-vba

我的团队在开发过程中遇到了这个奇怪的错误,困扰着我们。在我的团队正在构建的excel工具上运行VBA时,Excel有时会崩溃,并且会出现“ Microsoft已停止工作”弹出窗口,并且当用户选择“关闭程序”选项时,还会弹出另一个弹出窗口出现“发生自动化错误异常”。现在这是奇怪的地方:

  1. 它仅在运行2007、2010和2013的计算机上发生,永远不会出现此问题。

  2. 仅每两周发生一次(该工具的3-5个版本)。这些相同的机器每天整天都在运行和测试该工具,直到出现问题为止。

  3. 从代码角度来看,可以工作的版本与不能工作的版本之间没有明显的区别。

  4. 在某些情况下,机器可以正常运行VBA代码,并且突然开始出现错误。一旦2007年的计算机遇到错误,该文件将永远无法再在该计算机或任何其他2007年的计算机上工作。但是,如果给定相同文件的新副本,则问题有时会消失。

  5. 经过一些在线审查之后,我已将错误归结为正在使用的三个引用:OLE自动化,Microsoft Office 12.0对象库,用于Windows 200库的Microsoft CDO。如果以任何组合禁用了这三个中的任何一个,则VBA将开始运行无错误。

我的问题是:

  1. 是什么会导致导致工具在计算机上运行十二次(保存或不保存更改)并突然停止运行,并且在替换为新副本之前不再运行的错误?
  2. 以上三个参考之间可能有哪些相互作用可能与此相关?

Ben*_*301 5

因此,经过大量调试,我们终于找到了错误。其中一名程序员在加载表单之前运行了一个脚本,在该脚本中他预先填充了表单中的某些列表框。显然是因为此SU​​B存在于表单之外和/或因为尚未初始化表单,所以这导致excel崩溃。无论如何,希望答案能帮助其他遇到相同问题的人。