Cách dán tiêu đề HTML vào Excel


1

Trong một câu trả lời trước đó ( bảng vba - html vào bảng tính excel ) về phân tích / dán nội dung bảng HTML vào một bảng Excel, wbeard2 đã chia sẻ đoạn mã minh họa rất hữu ích này. Anh ấy / cô ấy lưu ý rằng nó cấy dữ liệu bảng vào Excel nhưng không phải tiêu đề. Tôi đã tự hỏi làm thế nào để sửa đổi mã này để bao gồm các tiêu đề cột trong bảng Excel. Đã nghĩ rằng có thể có một cách lặp qua các phần tử tiêu đề tương tự như được hiển thị để lặp qua tất cả các ô và các ô trong các hàng trong, nhưng không chắc có phần tử lặp tương đương cho các tiêu đề hay không - có thể là ? Bất kỳ lời khuyên / hướng dẫn về điều này đánh giá cao.

Đây là mã mẫu từ câu trả lời trước được tham chiếu ở trên:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.