VBA извлечь значение из таблицы html

я хочу удалить следующий HTML-код, чтобы извлечь значение из одного из тегов «td» в «resultsTable»

введите здесь описание изображения

Я попытался запустить код vba ниже, но он не работает. я получаю

код ошибки времени выполнения «91»

Dim appIE As Object
Set appIE = CreateObject("internetexplorer.application")

With appIE
.navigate "https://www.investing.com/stock-screener/?
 sp=country::5|sector::a|industry::a|equityType::a|exchange::a%3Ceq_market_cap;1"
.Visible = True
End With

Do While appIE.Busy
DoEvents
Loop

Set table = appIE.document.getElementById("resultsContainer").Children(1)

Set tbody = table.getElementsByTagName("tbody")(0)

trs = tbody.getElementsByTagName("tr")

Dim myvalue As String: myvalue = trs.Cells(3).innerText
appIE.Quit
Set appIE = Nothing

MsgBox myvalue

person liac    schedule 11.12.2017    source источник
comment
Какая строка вызывает ошибку?   -  person Andy G    schedule 11.12.2017
comment
Привет, Энди, строка Dim myvalue As String: myvalue = trs.Cells(3).innerText   -  person liac    schedule 11.12.2017
comment
Прочтите: stackoverflow.com/help/mcve   -  person Maciej Jureczko    schedule 11.12.2017


Ответы (1)


Вы не даете странице время для загрузки. Ожидание завершения .Busy не означает, что страница загружена и элементы страницы доступны.

Вот один из способов сделать паузу, чтобы некоторый соответствующий контент был доступен:

trs = tbody.getElementsByTagName("tr")

Do While trs Is Nothing
    DoEvents
    Application.Wait Now + TimeValue("00:00:02")
    trs = tbody.getElementsByTagName("tr")
Loop
person Andy G    schedule 11.12.2017
comment
Большой! Теперь код работает хорошо. Большое спасибо за вашу помощь! - person liac; 11.12.2017