我一直在獲取與下面的VBA代碼(最近的錯誤是運行時錯誤'70':權限被拒絕)的各種錯誤。基本上,代碼/工作表連接到客戶的Intranet IE數據庫,搜索客戶活動並將任何活動導入到工作表(最終將使用該活動進行報告)。這裏是我遇到錯誤的地方,具體取決於我搜索的時間長度,我有時需要拉動多個頁面的活動,這需要點擊「下一個」按鈕並從每個頁面拉出數據,直到不再有「下一個「按鈕(不再有活動)。我設置的循環將從第一頁拉出,單擊「下一步」按鈕,然後有時從第二張拉出,但隨後會跳出錯誤。所以我認爲這個錯誤與加載頁面有關,但我添加了暫停以允許加載但仍然遇到相同的錯誤。我真的堅持這一點,不幸的是,我無法推進這個項目,直到我能解決這個問題。與VBA循環拉動HTML數據的各種錯誤
這裏是代碼片段:
Dim TDelements As IHTMLElementCollection
Dim TDelement As HTMLTableCell
Dim r As Long, i As Long
Dim e As Object
Set TDelements = IE.document.getElementsByTagName("tr")
r = 0
For i = 1 To 1
Application.Wait Now + TimeValue("00:00:03")
For Each TDelement In TDelements
If TDelement.className = "searchActivityResultsContent" Then
Sheet1.Range("E1").Offset(r, 0).Value = TDelement.ChildNodes(8).innerText
r = r + 1
ElseIf TDelement.className = "searchActivityResultsContent" Then
Sheet1.Range("E1").Offset(r, 0).Value = TDelement.ChildNodes(8).innerText
r = r + 1
End If
Next
Application.Wait Now + TimeValue("00:00:02")
Set elems = IE.document.getElementsByTagName("input")
For Each e In elems
If e.Value = "Next Results" Then
e.Click
i = 0
Exit For
End If
Next e
Next i
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
IE.Quit
End Sub
任何幫助/建議將非常讚賞。謝謝!
哪一行發生錯誤?使用[IE,文檔和元素狀態檢查順序](http://stackoverflow.com/a/32170074/2165759)而不是'Application.Wait'。或者您可以嘗試[通過XHR檢索數據](http://stackoverflow.com/a/35700277/2165759)。 – omegastripes
感謝您的迴應,給出錯誤的線(大多數情況下)是「針對TDelements中的每個TDelement」。至於你的建議,我已經嘗試過使用IE,文檔和元素狀態檢查,我仍然遇到同樣的問題...我將它切換到application.wait命令,因爲它有時需要幾秒鐘來加載活動頁面。我很抱歉,我絕不是VBA的專家,它有什麼XHR?我怎麼能在這個意義上利用它? –
您可以分享您正在使用的網址嗎?關於XHR,請嘗試按照我之前評論中鏈接的步驟操作。 – omegastripes