2015-12-14 29 views
1

所以我有一個Excel表格,它有四個外部數據源,數據是來自我的經紀商網站的其他信息的實時股票報價&。如何處理在Excel中同時刷新多個外部數據源?

問題是我的經紀商網站允許每個手錶單上最多隻能添加50只股票,但是我有超過150只股票要跟蹤,所以我做了4個這樣的手錶單,但現在的問題是數據需要更多時間每分鐘都會刷新一次(我也將這些數據存儲在excel中)並且過程不夠流暢。

修改公式或進行任何編輯時也很麻煩,因爲我必須等到刷新結束。

有什麼辦法可以讓所有的四個watch list在excel中同時刷新,以便處理更快?

+0

一般人只需支付其經紀更高的訪問。 – Jeeped

+0

我的經紀人終端有更多的餘額,但當我向他們詢問他們的網站關注清單添加了50多個股票時,他們告訴我這是不可能的,因爲編碼不是那樣的。此外,我只是想在Excel中每分鐘存儲一次數據,因爲這對我的算法是必要的。 –

+1

您無法同時運行多個數據導入。因此,要麼使用不同的導入方式,如[ResponseText](http://stackoverflow.com/questions/33417502/find-a-string-in-web-query-without-putting-webpage-contents-on-the-//)至少快很多或運行一個外部腳本來保存所有內容到本地驅動器,然後導入它(這也可以更快) –

回答

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 
相關問題