Как вставить заголовки HTML в Excel

315
Reservist72

В предыдущем ответе ( 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 
1

0 ответов на вопрос

Похожие вопросы