我编写了一个代码,用于从VBA中的Google专利中获取网络信息,效果非常好,但不幸的是,它很容易出现两个错误。
最常见的两个是
发生这种情况时需要发生的只是按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
我基本上希望自动化我的错误处理,以便我可以在一夜之间运行代码并像婴儿一样睡觉:)
答案 0 :(得分:1)
我认为Excel VBA中没有代码语句允许您以编程方式中断代码然后继续。但是,您可以使用VBA模拟按下Break按钮,但我不知道如何让代码按下Continue按钮,因为代码已经暂停...
Application.VBE.CommandBars.FindControl(ID:=189).Execute 'press Break button
DoEvents
下面应按继续按钮,但我无法让它工作 - 也许有人知道怎么做?
Application.VBE.CommandBars.FindControl(ID:=186)
或者,您可以尝试让您的例程进入休眠状态,等待IE响应,在这种情况下,您需要公开一些Windows API,如下所示。
在模块代码中,在最顶层,您需要放置Declare语句。
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
然后你可以在任何地方使用Sleep():
Sub Test()
Debug.Print "I will now sleep for 1000 milliseconds...."
Sleep(1000)
Debug.Print "I am now awake."
End Sub