У меня есть этот сайт, который я хотел бы получить данные в таблице в Microsoft Excel.
Я использовал множество примеров VBA, но не смог заставить их работать, потому что таблица не имеет имени или идентификатора в теге таблицы (в HTML).
Это сайт:
Как я могу "захватить" данные таблицы и поместить ее в Excel?
[Примечание редактора 13 ноября: подтвердил, что URL-адрес является допустимым.]
Таблица, на которую вы ищете, находится на уровне 21 (ниже) ниже корня документа (<html>
) и имеет атрибут класса, установленный на значение " Таблица 3 ",
<table width="100%" cellspacing="1" cellpadding="0" border="0" class="Table3">
который используется только один раз по всему HTML и, следовательно, дает довольно хороший критерий выбора. Поэтому я предлагаю вам сделать что-то вроде
Dim Doc As MSHTML.HTMLDocument
Dim ECol As MSHTML.IHTMLElementCollection
Dim IFld As MSHTML.IHTMLElement
Set ECol = Doc.getElementsByTagName("table")
For Each IFld In ECol
If VarType(IFld.getAttribute("class")) <> vbNull Then
If IFld.getAttribute("class") = "Table3" Then
' further process the Inner HTML of IFld ...
End If
End If
Next
' ...
Сначала проверка VarType перед проверкой значения String заключается в обнаружении и исключении элементов таблицы, которые не содержат никакого элемента класса, и в этом случае имя If
on класса завершится с ошибкой.
Отладчик VBA и ключ F8 - ваши друзья!
Set tbl = document.getElementsByTagName("table")(3)
чтобы получить ссылку на третью таблицу на странице.