XML / VBA从多页表中提取数据

时间:2017-09-11 14:46:52

标签: xml vba

我试图用VBA&提取数据,徒劳无功。 XML,来自爱尔兰中央银行网站(Central Bank Website)的多页表格。我已成功使用IE提取此内容。但是,我偶然发现了使用XML提取网页表的代码,并且可以看到使用此方法的好处,即它更快。

我的问题是,我可以使用XML方法从多页表中提取数据,还是仅限于自动化IE来完成此操作。

我使用的XML代码如下:

Sub Web_Table_Option_One()
    Dim xml    As Object
    Dim html   As Object
    Dim objTable As Object
    Dim result As String
    Dim lRow As Long
    Dim lngTable As Long
    Dim lngRow As Long
    Dim lngCol As Long
    Dim ActRw As Long

    Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
    With xml
         .Open "GET", "http://registers.centralbank.ie/FundSearchResultsPage.aspx?searchEntity=FundServiceProvider&searchType=Name&searchText=&registers=6%2c29%2c44%2c45", False
        .send
    End With
    result = xml.responseText
    Set html = CreateObject("htmlfile")
    html.body.innerHTML = result
    Set objTable = html.getElementsByTagName("table")
    For lngTable = 0 To objTable.Length - 1
        For lngRow = 0 To objTable(lngTable).Rows.Length - 1
            For lngCol = 0 To objTable(lngTable).Rows(lngRow).Cells.Length - 1
                ThisWorkbook.Sheets("Sheet2").Cells(ActRw + lngRow + 1, lngCol + 1) = objTable(lngTable).Rows(lngRow).Cells(lngCol).innerText
            Next lngCol
        Next lngRow
        ActRw = ActRw + objTable(lngTable).Rows.Length + 1
    Next lngTable
End Sub

此代码将在加载的网页的第一页上提取数据,但我无法弄清楚如何提取剩余部分(共57页)。网址不会改变,因此不像递增页码那么容易。

我没有很多从网络表中提取数据的经验,所以我很感激这里有任何帮助。

谢谢, 艾伦

注意:这已经过帐到MrExcel

0 个答案:

没有答案