У меня есть вопрос относительно некоторого кода VBA, который у меня есть для рабочего элемента. Я пытаюсь удалить данные с веб-страницы, которую использую для отчетов. Я новичок в VBA и программировании в целом, и изменил код, который нашел в Интернете (в основном Daily Dose).
Мне удалось очистить информацию из таблицы с помощью следующего кода, но это не та таблица:
Sub webdata()
Dim appIE As Object
Dim doc As Object
Dim rowdata As Object
Dim clip As DataObject
Set appIE = CreateObject("internetexplorer.application")
With appIE
.Navigate ""
.Visible= True
End With
Do While appIE.Busy
DoEvents
Loop
Set ieDoc = appIE.Document
With ieDoc.forms(0)
.UserID.Value = ""
.Password.Value = ""
.submit
End With
Do While appIE.Busy: DoEvents: Loop
Do Until appIE.ReadyState = READY_STATE_COMPLETE: DoEvents: Loop
With appIE
.Navigate ""
.Visible = True
End With
Do While appIE.Busy: DoEvents: Loop
Do Until appIE.ReadyState = READY_STATE_COMPLETE: DoEvents: Loop
Set doc = appIE.Document
Set rowdata = doc.getElementById("datatable")
If Not rowdata Is Nothing Then
Set clip = New DataObject
clip.SetText "" & rowdata.outerHTML & ""
End If
clip.PutInClipboard
Sheet1.Select
Sheet1.Range("A1").Select
Sheet1.PasteSpecial "Unicode Text"
appIE.Quit
Set appIE = Nothing
End Sub
На данной странице есть несколько таблиц, но моя проблема что все они имеют одинаковый идентификатор ("datatable"). Мне нужна четвертая таблица, указанная в коде HTML.
Я попытался отредактировать эти строки кода, чтобы учесть индекс / положение правой таблицы, но все, что я получил, было «Ошибка выполнения -2147352319 (80020101) Ошибка автоматизации»:
Set doc = appIE.Document
Set rowdata = doc.getElementbyID ("datatable")(4)
Я также пробовал добавить следующее:
Set rowdata = doc.getElementbyID ("datatable")(4).innerText
К сожалению, по соображениям безопасности я не могу опубликовать веб-ссылку или код HTML. Буду очень признателен за любую помощь / отзыв! Заранее спасибо.