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