Я использую excel для получения значений с веб-страницы. Среди других элементов HTML содержится следующая таблица:Excel VBA: Получить внутренний текст таблицы HTML td
<div id="myDiv">
<table class="myTable">
<tbody>
<tr>
<td>Text1:</td>
<td class="data"><strong>0.51</strong></td>
</tr>
<tr>
<td>Text2:</td>
<td class="data"><strong>2199</strong></td>
</tr>
</tbody>
</table>
</div>
Страница хранится в переменной oHtml. Он отлично работает, чтобы захватить другие элементы за пределами этой таблицы. Но когда я пытаюсь захватить 0,51 значение, например, я использую JS в консоли:
document.getElementById("myDiv").getElementsByClassName("myTable")[0].getElementsByClassName("data")[0].innerText
И выбирается значение 0,51.
Однако, следующий код VBA, используемый внутри функции, возвращает #VALUE!
Function myFunction(id)
Call myConnection(id)
Set myDadta = oHtml.getElementById("myDiv").getElementsByClassName("myTable")(0).getElementsByClassName("data")(0)
myFunction = myData.innerText
End Function
Это соединение IE:
Public Sub myConnection(id)
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.example.com" & id, False
.send
oHtml.body.innerHTML = .responseText
End With
End Sub
Как я уже сказал, этот вид синтаксиса работает отлично с другими элементами из этой таблицы в этой же странице, так почему я получаю это ошибка?
+ 1 LOL Nice catch :) –
Это было только на первый взгляд. С кодом больше проблем. Публикация обновлений ... –
Извините, он возвращает #VALUE! Вы можете получить значение бета-версии этой страницы (1.12) http://www.reuters.com/finance/stocks/overview?symbol=PTI.LS –