VBA将html导入表的结果拆分为excel

Joh*_*lko 1 excel vba excel-vba web-scraping

嗨我从网站导入整个表到excel字符串:

Dim fST As String
fST = Doc.getElementsByTagName("table")(0).innerText
Run Code Online (Sandbox Code Playgroud)

之后,我想在excel单元格中拆分表格,并使用<td>html表格中的标签进行拆分,或者至少这是我认为可以做的选项,因此导入的表格在excel内部是相同的一旦导入,每个值都将在单个单元格内.

让我知道谢谢.

这是我正在使用的整个conde:

Private Sub Worksheet_Change(ByVal Target As Range)

 If Target.Row = Range("URL").Row And _
 Target.Column = Range("URL").Column Then
    Dim IE As New InternetExplorer
    IE.Visible = True
    IE.navigate Application.ActiveSheet.Range("URL")
    Do
        DoEvents
        Loop Until IE.readyState = READYSTATE_COMPLETE
    Dim Doc As HTMLDocument
    Set Doc = IE.document

    Dim tbl, trs, tr, tds, td, r, c

    Set tbl = Doc.getElementsByTagName("table")(0)
    Set trs = tbl.getElementsByTagName("tr")

    For r = 1 To trs.Count
        Set tds = trs(r).getElementsByTagName("td")
        For c = 1 To tds.Count
            ActiveSheet.Cells(r, c).Value = tds(c).innerText
        Next c
    Next r
    IE.Quit
 End If
End Sub
Run Code Online (Sandbox Code Playgroud)

但它表示错误:对象不支持以下行中的此属性或方法:对于r = 1 To trs.Count

Tim*_*ams 7

编辑:测试的例子

Sub Tester()

Dim IE As Object
Dim tbls, tbl, trs, tr, tds, td, r, c

Set IE = CreateObject("internetexplorer.application")

IE.navigate "http://www.w3schools.com/html/html_tables.asp"

Application.Wait Now + TimeSerial(0, 0, 4)

    Set tbls = IE.Document.getElementsByTagName("table")
    For r = 0 To tbls.Length - 1
        Debug.Print r, tbls(r).Rows.Length 
    Next r

    Set tbl = IE.Document.getElementsByTagName("table")(5)
    Set trs = tbl.getElementsByTagName("tr")

    For r = 0 To trs.Length - 1
        Set tds = trs(r).getElementsByTagName("td")
        'if no <td> then look for <th>
        If tds.Length = 0 Then Set tds = trs(r).getElementsByTagName("th")

        For c = 0 To tds.Length - 1
            ActiveSheet.Range("B4").Offset(r, c).Value = tds(c).innerText
        Next c
    Next r

End Sub
Run Code Online (Sandbox Code Playgroud)