如何在excel中同时刷新多个外部数据源?

时间:2015-12-14 07:03:24

标签: excel vba excel-vba web excel-2013

所以我有一张excel表,里面有四个外部数据源,数据是实时股票报价&我的经纪人网站上的其他信息。

问题是我的经纪人网站只允许每个观察列表添加最多50只股票,但我有超过150只股票需要跟踪,所以我制作了四个这样的监视列表,但问题是现在需要花费更多时间来获取数据刷新每一分钟(我也将数据存储在excel中)并且处理不够顺畅。

在更改公式或进行任何编辑时也非常麻烦,因为我必须等到刷新结束。

有没有什么方法可以让所有四个监视列表在excel中同时刷新,以便处理更快?

1 个答案:

答案 0 :(得分:0)

Excel真的不是分析超过150种股票的正确工具。但是,如果您真的希望免费快速获得许多价格,请运行下面的脚本。

注意,第一个自动收录器从第7行开始。

Sub GetData()

Application.DisplayAlerts = False

Dim yahoourl As String
    Dim QuerySheet As Worksheet
    Dim DataSheet As Worksheet
    Dim qurl As String
    Dim i As Integer

    Set DataSheet = ActiveSheet

    i = 7
    yahoourl = "http://quote.yahoo.com/d/quotes.csv?s=" + Cells(i, 1)
    i = i + 1
    While Cells(i, 1) <> ""
        yahoourl = yahoourl + "+" + Cells(i, 1)
        i = i + 1
    Wend
    yahoourl = yahoourl + "&f=" + "l1"

Columns("C:C").Select
Range("C2").Activate
On Error Resume Next
Selection.QueryTable.Delete
Selection.ClearContents

QueryQuote:
             With ActiveSheet.QueryTables.Add(Connection:="URL;" & yahoourl, Destination:=DataSheet.Range("C7"))
                .BackgroundQuery = True
                .TablesOnlyFromHTML = False
                .Refresh BackgroundQuery:=False
                .SaveData = True
            End With

    Application.Calculation = xlCalculationAutomatic
    Application.DisplayAlerts = True
    Columns("C:C").ColumnWidth = 28#
    Cells(2, 3).Select

Application.DisplayAlerts = True

End Sub