将多个网页中的数据提取到Excel中 - 使用VBA - Excel冻结

时间:2013-11-02 08:04:11

标签: excel vba excel-vba

我正在尝试将以下网页中的数据提取到excel中。来自以下链接的数据跨越7页(约3500行)。我需要将这些数据存入我的excel工作手册。

www.moneycontrol.com/stocks/hist_stock_result.php?ex=N&sc_id=RI&pno=1&hdn=daily&fdt=2000-01-01&todt=2013-11-01

我使用下面的宏来下载相同的....不幸的是,由于未知的原因,宏将excel应用程序sreeze。请有人帮忙.....

Private Const URL_TEMPLATE As String = "URL;http://www.moneycontrol.com/stocks/hist_stock_result.php?sc_id=RI&pno={0}&hdn=daily&fdt=2000-01-01&todt=2013-11-01"
Private Const NUMBER_OF_PAGES As Byte = 7

Sub test()
    Dim page As Byte
    Dim queryTableObject As QueryTable
    Dim url As String

    For page = 1 To NUMBER_OF_PAGES
        url = VBA.Strings.Replace(URL_TEMPLATE, "{0}", page)
        Set queryTableObject = ActiveSheet.QueryTables.Add(Connection:=url, Destination:=ThisWorkbook.Worksheets.Add.[a1])
        queryTableObject.WebSelectionType = xlSpecifiedTables
        queryTableObject.WebTables = "3"
        queryTableObject.Refresh
    Next page

End Sub

1 个答案:

答案 0 :(得分:0)

我已经在我的系统上进行了测试,它运行得很好。似乎正在发生的事情是:

  1. 代码快速执行
  2. 系统读取基于Web的数据源 - 此步骤的速度取决于您的Internet连接速度
  3. 当发生这种情况时,我在单元格A1中得到“ExternalData_1:获取数据...”,并且状态栏上的消息在以下位置之间切换:

    “将网络数据复制到工作表” 和 “刷新”

    来自南非的2Mbps ADSL互联网连接在我的系统上从执行到完成的总时间约为24秒。

    我正在使用Excel 2007