我刚刚完成了一个大的VBA代码,它基本上是在一个内部网页面上,有一些奇怪的属性(有关详细信息,请参阅我的previous post)。
代码非常繁重,当我一步一步地运行它(F8)时它可以工作,但是如果我尝试运行整个事情,我会得到一个对象变量或者没有设置块变量。
问题是这个错误并不总是在代码中的相同位置弹出。
到目前为止我尝试做的事情:
每当我点击网页的某个元素,选择一个新窗口或任何其他操作时,我等待页面的HTML文档和页面本身处于就绪状态:Do: Loop Until doc.readyState = "complete"
和< / p>
Sub WaitWhileBusy(ie As SHDocVw.InternetExplorer)
While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE
DoEvents
Wend
End Sub
所以我只是在整个代码中传播其中的一些“检查点”,但它根本不会影响这个问题。
有关如何处理此事的任何想法?
答案 0 :(得分:0)
好的,我找到了解决此问题的好方法。
我仍然不能完全理解为什么会出现这个错误,但我猜它与进程的速度有关,所以我做的是我添加了一个基本上具有效果的Timers子代码每次调用时都会暂停代码以及我想要的秒数。
代码(我从here复制粘贴)如下:
子计时器() Dim PauseTime,Start,Finish,TotalTime PauseTime = 1&#39;设定持续时间 开始=定时器&#39;设置开始时间。 做计时器&lt;开始+暂停时间 DoEvents&#39;其他过程的收益率。 环 结束子
我的问题消失了!