我在第二个循环的If条件上有一个权限被拒绝的错误。
我单击第一个URL,它会打开,我返回,我想单击此页面中的第二个URL,但出现错误。
Dim fourdoc As HTMLDocument
Set fourdoc = objIE.document
Dim t As Long, i As Long
Dim delement As MSHTML.HTMLInputElement
Dim delements As MSHTML.IHTMLElementCollection
Set delements = fourdoc.getElementsByTagName("a")
For Each delement In delements
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
'' error permission denied there second time loop for''
If delement.ClassName = "dialogUrl aImg" Then
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
delement.Click
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
Set fourdoc = objIE.document
'here do your stuff within the new url
objIE.GoBack
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
Set fourdoc = objIE.document
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
End If
Next
End With
End Sub
经过24小时的反思,我找到了解决方案:
Dim fourdoc As HTMLDocument
Set fourdoc = objIE.document
Dim i As Integer
Dim t As Integer
'Dim delement As MSHTML.IHTMLElement
Dim delements As Object
Set delements = fourdoc.getElementsByClassName("dialogUrl aImg")
t = delements.Length
Debug.Print t
For i = 0 To t - 1
'''''''''''''''''''''''''''''
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
''''''''''''''''''''''''''''
Set fourdoc = objIE.document
Set delements = fourdoc.getElementsByClassName("dialogUrl aImg")
'''''''''''''''''''''''''''''
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
''''''''''''''''''''''''''''
delements(i).Click
'''''''''''''''''''''''''''''
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
''''''''''''''''''''''''''''
objIE.GoBack
'''''''''''''''''''''''''''''
Do While objIE.Busy Or objIE.readyState <> 4
DoEvents
Loop
'''''''''''''''''''''''''''''
Next i