Я пытаюсь запустить макрос, который идет по 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)? –