5

私は使っている :

While ie.busy
DoEvents
Wend

' Some Code

Internet Explorer の更新中にコードに一時停止を追加するには。しかし、これはうまく機能していないようです。「一部のコード部分が時期尚早に実行され、エラーがスローされています。

他の方法も試してみました。例えば

Errorhandler:

While ie.busy
DoEvents
Wend

On Error Goto Errorhandler
'Some Code

しかし、これでも機能せず、コードが成熟する前に実行されることがあります。

ie.busy の間違いのない代替案を提案してください

4

1 に答える 1

5

私たちのコードでは、ie.Busy (InternetExplorer.Application Object) はあまり信用できません。これが私たちが使用し、機能するものです:

Enum READYSTATE
    READYSTATE_UNINITIALIZED = 0
    READYSTATE_LOADING = 1
    READYSTATE_LOADED = 2
    READYSTATE_INTERACTIVE = 3
    READYSTATE_COMPLETE = 4
End Enum

Dim strUrl
Dim ie As Object

Set ie = CreateObject("InternetExplorer.Application")
'....
' do navigation...
'
strUrl = "http://www.example.com/"
ie.Navigate strUrl

'
' waiting for the ie complete loading:
'
Do While (ie.Busy Or ie.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
  DoEvents
Loop

'
' here below you do stuffs on the new loaded URL:
'

あなたが試すことができます。

于 2013-10-13T10:24:01.693 に答える