Я пытаюсь автоматизировать некоторые операции очистки данных через VBA и постоянно получаю
Ошибка выполнения 91 "переменная объекта не установлена"
на строка
For Each htmlele In ieobj.document.getElementById("j_id_jsp_747894496_2").getElementsByTagName("tr")
Я включил полный код ниже. Я вижу, что htmlele
не объявлено, но я не уверен, что это может быть проблемой. Все необходимые библиотеки объектов были загружены, так что никаких проблем с распознаванием объектов VBA, но не совсем точно, почему это ошибки.
Sub import_ECS()
Dim courses As Workbook
Set courses = Excel.Workbooks("CANTRAC Courses")
Dim ECSws As Worksheet
Set ECSws = courses.Sheets("ECS")
Dim ieobj As InternetExplorer
Set ieobj = New InternetExplorerMedium
Dim htmlele As IHTMLElement
Dim i As Integer
i = 2
Dim ECSURL As String
ECSURL = "https://app.prod.cetars.training.navy.mil/cantrac/pages/rpt_classes_by_cin.html?cin=A-830-0030&p=1"
ieobj.navigate ECSURL
Application.Wait Now + TimeValue("00:00:15")
For Each htmlele In ieobj.document.getElementById("j_id_jsp_747894496_2").getElementsByTagName("tr")
With ECSws
.Range("A" & i).Value = htmlele.Children(0).textContent
.Range("B" & i).Value = htmlele.Children(1).textContent
.Range("C" & i).Value = htmlele.Children(2).textContent
.Range("D" & i).Value = htmlele.Children(3).textContent
.Range("E" & i).Value = htmlele.Children(4).textContent
.Range("F" & i).Value = htmlele.Children(7).textContent
.Range("G" & i).Value = htmlele.Children(8).textContent
.Range("H" & i).Value = htmlele.Children(9).textContent
.Range("I" & i).Value = htmlele.Children(10).textContent
End With
i = i + 2
Next htmlele
End Sub