首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >刷新网页,而网页未在VBA excel中正确加载。

刷新网页,而网页未在VBA excel中正确加载。
EN

Stack Overflow用户
提问于 2013-10-16 04:24:27
回答 1查看 1.9K关注 0票数 1

我已经创建了一个程序,从网站中提取数据并保存在电子表格中。但我遇到的主要问题是Internet的吊死。

代码语言:javascript
复制
With ie
        .Visible = True
        .Navigate urll
        Do While .readyState <> 4
            Application.StatusBar = "Opening Page : " & i & ", Please wait..."
            DoEvents
        Loop
        Set html = .Document
End With

循环有时会停止,因为internet无法正确加载,并且永远不会达到4的就绪状态。在这种情况下,我要么手动刷新页面(保持ie真的可见性),要么停止程序,对程序(数据的来源和目的地)进行一些更新。这是相当耗时的,如果每10个网页保持循环打开。

我有一个解决方案,即在时间循环进行过程中,程序应该检查循环执行过程中经过的时间,如果循环持续超过50秒,程序应该挂起当前循环并通过刷新页面重新启动。(如果你有更好的逻辑,请告诉我)。

我不能为这项工作做正确的编码。有人能解决这个问题吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-16 06:27:19

试试这个(未测试的)

这样做是增加一个变量并检查调用循环的时间。

代码语言:javascript
复制
Dim nCount As Long

Sub Sample()
    '
    '~~> Rest of the code
    '
    With ie
        .Visible = True
        .Navigate urll
        Do While .readyState <> 4
            Application.StatusBar = "Opening Page : " & i & ", Please wait..."

            Wait 2 '<~~ Wait for 2 Seconds

            If nCount > 25 Then
                '~~> Approx 50 seconds have elapsed
            End If
        Loop
        Set HTML = .Document
    End With
    '
    '~~> Rest of the code
    '
End Sub

Private Sub Wait(ByVal nSec As Long)
    nSec = nSec + Timer
    While nSec > Timer
        DoEvents
    Wend
    nCount = nCount + 1
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19395224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档