我正在使用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
我正在使用上面的代码进行加载时间计算,但是代码无法按照我的要求工作。
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()
更实用。干杯!