如何在Access VBA中计算页面加载时间

时间:2019-11-24 11:45:59

标签: vba ms-access access-vba

我正在使用MS Access VBA进行Web数据提取,目前我的代码工作正常,但是当我在某些页面上禁用Java脚本然后页面无法正确加载(即页面加载时间过长)时,我遇到了问题,现在我想在VBA中计算页面加载时间,如果页面加载时间过多,那么我想继续下一页。

我现有的代码如下:

Ie.navigate url1234
ctime = Now
dtime = (DateDiff("n", ltime, Now))
' MsgBox (dtime)

If dtime > 18000 Then
    MsgBox ("too much time")
End If

我正在使用上述代码进行加载时间计算,但是代码无法按照我的要求工作。

1 个答案:

答案 0 :(得分:0)

您可以在while循环中检查IE对象的state,以确定您要做什么。

正如Paul在评论中提到的那样,您可能需要计算ie.navigate通话之前的时间。

因此,您可以尝试执行以下操作:

Start = Timer
ie.navigate url1234

Do While ie.Busy Or ie.ReadyState <> 4
    ' If its more than 60 seconds...
    If Round(Timer - Start, 2) > 60 Then
        ' Whatever you want to do if it's past 60 seconds...
        MsgBox ("too much time")
        Exit Sub
    End If
Loop

' Some other code if it's succesful and within the 60 seconds below ..

我还使用了timer而不是Now(),因为在计时查询和函数时,我发现它比Now()更实用。

干杯!