如何用excel獲得股票實時數據?


最簡單的做法:

自己找一個證券網

然後使用錄製的方式抓取第一頁數據

接著加一個簡單的for循環

然後設置一個數據刷新頻率

挖了個坑,剛好最近有空,順手寫個答案吧!

知乎巨爛無比的貼圖功能實在是受不了了,感興趣的直接去知乎專欄吧,我實在不想一張一張的貼圖了,好廢右手和數遍!非程序員如何使用EXCEL抓取網頁股票信 - 在職場 - 知乎專欄


題主是要一個拿來就能用的么?

方法有很多種,這裡給個比較少見的。主要利用新版本的函數WEBSERVICE。

之前在微盤上面保存過。後來微盤掛了,還有保存下來的。

只支持Excel 2013及以上。

按F9刷新。

原作者網址:EXCEL365 | chrisfang的excel大全

鏈接:http://pan.baidu.com/s/1dEXQ0Kx 密碼:1pnp


最直接的就是用wind


用東方財富的Choice金融終端的Excel插件就可以,有15天試用期,需要試用的可以參考我簽名,歡迎來薅羊毛!

做證券,特別是玩股票,只有歷史行情還是遠遠不夠,很多表格達人需要在excel中實現盯盤或者定製自己的看盤版面的需要。通過它,就可以滿足我們這個需求。

比如下面是我做的通過漲速監控盤面異動,以及查看市場整體漲跌幅的界面

來我們一起看下它長什麼樣子:

1. 證券分類,包括股債基、指利雙期(期權期貨)、外匯、投資理財基本涵蓋市場上所有金融產品的9種證券,每種證券下又包含各種常用的細分標準;

2. 指標列表:包含實時行情、買賣掛單和市場上非常通用的東財資金流向數據,默認自動刷新,在插件中可實現5-6S刷新一次。

以創業板股票為例提取高開低前收和最新價數據:

(1) 插入證券代碼

(2) 選擇指標設置輸出格式

輸出結果:

如果對excel比較精通,又懂一些VBA知識,可結合Vlookup等函數、VBA中Ontime等函數實現每多長時間自動保存DDX排名前多少名個股然後進行跟蹤,以發現該指標是否有效,另外結合函數嚮導、實時行情其他指標、excel強大的函數和編輯功能,還可以進一步剔除漲跌停個股、剛上市或剛復牌個股等一系列特殊情況。


原文:Excel股票行情數據

下載:VBA_股票行情.rar

新浪的數據介面:http://hq.sinajs.cn/list=sz000002,其中sz000002是股票代碼,一定要加上sh或sz的標識,輸入瀏覽器,返回結果如下:

var hq_str_sz000002="萬 科A,25.900,26.000,26.040,26.100,25.510,26.030,26.050,46121388,1189370537.360,2800,26.030,9600,26.020,418300,26.010,19020,26.000,300,25.990,23900,26.050,123777,26.060,29000,26.070,73200,26.080,53500,26.090,2016-10-18,14:13:36,00";

以上的數據分別對應:

0:"萬 科A",股票;
1:"25.900",今開;
2:"26.000",昨收;
3:"26.040",當前價格;
4:"26.100",今日最高價;
5:"25.510",今日最低價;
6:"26.030",競價買一報價;
7:"26.050",競價賣一報價;
8:"46121388",成交量;
9:"1189370537.360",成交額;
10~29為五檔信息
30:"2016-10-18",日期;
31:"14:13:36",時間;

不明白的地方可以對著股票行情看一下就知道

excel載入行情要用到VBA代碼,如下:

Sub a新浪股票()
Dim xmlobject As Object
Dim strReturn As String
Dim strUrl As String
Dim intLen As Long
Dim intLenA As Long
Dim arry As Variant

Set xmlobject = CreateObject("microsoft.xmlhttp")

For i = 1 To 5 "遍歷,5等於當前股票行數

strUrl = "http://hq.sinajs.cn/list=" Cells(1 + i, 2) "起始股票代碼單元格,格式要求前綴sz或sh
xmlobject.Open "GET", strUrl, False
xmlobject.send
If xmlobject.readystate = 4 Then
strReturn = xmlobject.responsetext
intLen = Len(strReturn) - 25 "剔除無關數據
strReturn = Mid(strReturn, 22, intLen)
arry = Split(strReturn, ",") "按逗號分隔數據,放入數組arry
intLenA = UBound(arry) - LBound(arry) + 1 "數組長度,此處未使用,可結合For遍歷arry

"獲取目標數據
Cells(1 + i, 3) = arry(0)
Cells(1 + i, 4) = Round((arry(3) - arry(2)) / arry(2), 4) * 100
Cells(1 + i, 5) = arry(3)
Cells(1 + i, 6) = arry(1)
Cells(1 + i, 7) = arry(2)
Cells(1 + i, 8) = arry(4)
Cells(1 + i, 9) = arry(5)
Cells(1 + i, 10) = arry(8) / 1000000
Cells(1 + i, 11) = arry(9) / 10000

End If
Next i
End Sub


現在2016 的官方模板裡面就有股票的VBA程序,可以免費下載


謝邀。

用VBA來寫抓取個網頁數據應該是可以的,至於怎麼寫,網頁上也是有方法的。

至於我VBA的水平還停留在二級水平...


推薦閱讀:

有沒有股票軟體可以實現概念疊加選股?
現在還有哪個炒股軟體在做模擬炒股大賽啊?直接現金獎勵的
有什麼類似於Al的炒股軟體介紹給上班一族?

TAG:MicrosoftExcel | 股票軟體 | Excel使用 |