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)时是否会崩溃? –