【发布时间】:2014-07-17 09:27:16
【问题描述】:
我编写了一个代码来从 VBA 中的 Google 专利中抓取网络信息,该代码运行良好,但不幸的是它很容易出现两个错误。
最常见的两个是
- 运行时错误
- Windows OLE 正在等待...
发生这种情况时,只需按下 ok、ctrl break、F5 并再次执行即可。同样由于我不知道的原因,代码在 x 分钟后似乎变慢了,然后中断并重新启动它会加快速度。
因此,作为一个完整的解决方案,我想执行以下操作。在 x 分钟后(或者说 40 次迭代后更好),自动中断执行并重新开始。 第二种很棒的错误处理方法是做类似
If Range("A1".End(xlDown)) at time t = Range("A1".End(xlDown)) at time t + 600 Then restart code execution Else continue code execution
我基本上希望自动化我的错误处理,以便我可以在夜间运行代码并像婴儿一样睡觉:)
【问题讨论】:
-
这对我来说听起来不是一个好主意。您是否尝试过 On Error Resume Next?
-
我已经发布了一个答案,但我不确定它对你有多大帮助;它可能会让您走上解决方案的正确轨道。 PS:帝国毕业生就在这里;)
-
感谢@ArmenSafieh-Garabedian。好的大学肯定:)
-
您需要以更好地处理此问题的方式设计您的代码。使每次迭代都成为函数调用并添加实际的错误处理(在错误恢复下一个不是错误处理)。然后,您可以简单地跳过“糟糕”的 Internet Explorer 调用并避免整个代码破坏。
-
在这里也可以看到这个功能 - stackoverflow.com/a/21338071/1048539 - 它可能会很有帮助
标签: vba excel error-handling runtime-error