运行VBA代码问题

时间:2016-11-15 10:13:47

标签: html vba

我刚刚完成了一个大的VBA代码,它基本上是在一个内部网页面上,有一些奇怪的属性(有关详细信息,请参阅我的previous post)。

代码非常繁重,当我一步一步地运行它(F8)时它可以工作,但是如果我尝试运行整个事情,我会得到一个对象变量或者没有设置块变量。

问题是这个错误并不总是在代码中的相同位置弹出。

到目前为止我尝试做的事情:

  1. 每当我点击网页的某个元素,选择一个新窗口或任何其他操作时,我等待页面的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
    
  2. 所以我只是在整个代码中传播其中的一些“检查点”,但它根本不会影响这个问题。

    1. 我现在有一个解决方案,但我根本不喜欢将整个代码放在一个循环中,同时出现错误,只有在代码结束时才会退出....
    2. 有关如何处理此事的任何想法?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决此问题的好方法。

我仍然不能完全理解为什么会出现这个错误,但我猜它与进程的速度有关,所以我做的是我添加了一个基本上具有效果的Timers子代码每次调用时都会暂停代码以及我想要的秒数。

代码(我从here复制粘贴)如下:

子计时器() Dim PauseTime,Start,Finish,TotalTime     PauseTime = 1&#39;设定持续时间     开始=定时器&#39;设置开始时间。     做计时器&lt;开始+暂停时间         DoEvents&#39;其他过程的收益率。     环 结束子

我的问题消失了!