0
我正在嘗試運行一個在網頁上的HTML文檔上執行的宏。代碼似乎沒問題,但我甚至無法確定它,因爲Internet Explorer在它結束之前一直崩潰。你可以在這裏看到我的代碼的第一部分(更大的樣本在here)。Internet Explorer隨機崩潰
For Each Element In IEDoc.querySelectorAll("td[width='100'][class='ListMainCent'][rowSpan='1'][colSpan='1']") '
Element.ParentNode.ParentNode.ParentNode.ParentNode.ParentNode.ParentNode.ParentNode.className = "Bim" ' instead of ID
Next
For Each Element In IEDoc.getElementsByClassName("SectionHead")
If Element.innerHTML = "Part Usage" Then
'MsgBox TypeName(Element.ParentNode.ParentNode.ParentNode)' HTMLTable
Element.ParentNode.ParentNode.ParentNode.ID = "Stop"
End If
Next
第一個弱點似乎剛好在第一個For循環的最後,就在它通過這一步之後。
此正在顯示,當然代碼無法繼續運行,因爲我仍然從HTML網頁文檔中提取數據。
關於如何防止這次崩潰的任何想法?
我到目前爲止所做的是在循環中調用以下某些函數,但它沒有任何區別。
Sub Timers()
Dim PauseTime, Start, Finish, TotalTime
PauseTime = 0.2 ' Set duration.
Start = Timer ' Set start time.
Do While Timer < Start + PauseTime
DoEvents ' Yield to other processes.
Loop
'Finish = Timer ' Set end time.
'TotalTime = Finish - Start ' Calculate total time.
'MsgBox "Paused for " & TotalTime & " seconds"
End Sub
Public Sub Warte_mal()
'Workaround to get the overview page in PuMA opened
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.popup "Overview page will be opened", 1, "Have some patience...."
End Sub
Sub WaitIE(ie As InternetExplorer)
Do Until ie.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub
你能夠在IE中完全加載網頁嗎? –
是的,實際上我沒有在這裏展示的代碼的第一部分包括進入網頁,在表單中輸入一些數據並單擊「搜索」按鈕以顯示更多信息。第一部分沒有問題。如果您認爲這可能有幫助,我可以展示它,但該網頁是內聯網。 – Seb
你說代碼隨機崩潰。這是否意味着它不總是相同的路線?如果是這樣,崩潰的行有任何共同點,例如,更新[DOM](https://en.wikipedia.org/wiki/Document_Object_Model)時是否會崩潰? –