В предыдущем ответе (vba - таблица html на лист Excel) о разборе / вставке содержимого таблицы HTML в лист Excel, wbeard2 поделился этим очень полезным, иллюстративным фрагментом кода. Он / она отмечает, что данные таблицы внедряются в Excel, но не в заголовки. Мне было интересно, как изменить этот код, чтобы включить столбчатые заголовки в лист Excel также. Думал, что может быть способ циклически проходить по элементам заголовка, подобный тому, который показан для циклического прохождения всех элементов и ячеек в строках в элементах, но не уверен, существует ли эквивалентный элемент цикла для заголовков - возможно, ? Любые советы / рекомендации по этому вопросу приветствуются.
Вот пример кода из предыдущего ответа, указанного выше:
Private Sub Test()
Dim ie As Object, i As Long, strText As String
Dim doc As Object, hTable As Object, hBody As Object, hTR As Object, hTD As Object
Dim tb As Object, bb As Object, tr As Object, td As Object
Dim y As Long, z As Long, wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Excel.ActiveWorkbook
Set ws = wb.ActiveSheet
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
y = 1 'Column A in Excel
z = 1 'Row 1 in Excel
ie.navigate "http://", , , , "Content-Type: application/x-www-form-urlencoded" & vbCrLf
Do While ie.busy: DoEvents: Loop
Do While ie.ReadyState <> 4: DoEvents: Loop
Set doc = ie.document
Set hTable = doc.GetElementsByTagName("table")
For Each tb In hTable
Set hBody = tb.GetElementsByTagName("tbody")
For Each bb In hBody
Set hTR = bb.GetElementsByTagName("tr")
For Each tr In hTR
Set hTD = tr.GetElementsByTagName("td")
y = 1 ' Resets back to column A
For Each td In hTD
ws.Cells(z, y).Value = td.innertext
y = y + 1
Next td
DoEvents
z = z + 1
Next tr
Exit For
Next bb
Exit For
Next tb
End Sub