目錄
Toggle簡介
利用Excel自動更新股票數據可以讓投資者方便地追蹤市場動態,提高交易決策的效率。本文將教你如何在Excel中設置並自動更新股票數據。
準備工作
在開始之前,你需要以下幾樣工具與資料:
- 安裝並設置好的Microsoft Excel
- 一個可以提供股票數據的API服務(例如Alpha Vantage、Yahoo Finance等)
- 少量編碼知識,以便進行基本的VBA編程
設置股票API
註冊API服務
首先,你需要註冊一個提供股票數據的API服務。我們以Alpha Vantage為例:
- 訪問Alpha Vantage的官方網站並註冊一個免費帳戶。
- 取得你的個人API金鑰(API Key)。
測試API請求
使用Postman或直接在瀏覽器中輸入URL來測試API請求,例如:
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=你的API金鑰
確認你能夠成功獲取所需的股票數據。
在Excel中建立股票數據表格
建立表格結構
在Excel中,新建一個工作表並命名為”股票數據”。設置以下各欄位:
- 股票代碼
- 開盤價
- 收盤價
- 最高價
- 最低價
- 交易量
輸入Excel函數
在你希望自動更新數據的位置輸入以下公式,此處以獲取A1單元格的數據為例:
=WEBSERVICE("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol="&A1&"&apikey=你的API金鑰")
使用VBA自動更新數據
開啟VBA編輯器
按下 Alt + F11 打開Excel的VBA編輯器。
撰寫VBA代碼
在VBA編輯器中,插入一個新模組並輸入以下代碼:
Sub 更新股票數據() Dim stockSymbol As String Dim apiUrl As String Dim jsonData As String Dim jsonObject As Object Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("股票數據") stockSymbol = ws.Range("A1").Value apiUrl = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=" & stockSymbol & "&apikey=你的API金鑰" ' 取得JSON數據 jsonData = GetWebData(apiUrl) ' 解析JSON數據 Set jsonObject = JsonConverter.ParseJson(jsonData)("Time Series (Daily)") ' 將數據填入表格 (此處僅示範填入每日收盤價) ws.Range("B2").Value = jsonObject("2023-01-01")("4. close") End Sub Function GetWebData(url As String) As String Dim xmlhttp As Object Set xmlhttp = CreateObject("MSXML2.XMLHTTP") xmlhttp.Open "GET", url, False xmlhttp.Send GetWebData = xmlhttp.responseText End Function
備註:你需要下載並引入一個JSON解析庫到VBA中,如VBA-JSON,以使解析JSON數據部分能夠正常運行。
運行VBA腳本
保存並關閉VBA編輯器。返回Excel中,在「開發工具」選單中,點擊「宏」並選擇剛剛創建的更新股票數據
,然後點擊「執行」。這將會自動更新表格中的股票數據。
設置自動化
使用計時器自動更新數據
如果希望定時自動更新股票數據,可以在VBA中設置計時器:
Public RunWhen As Double Public Const cRunWhat = "更新股票數據" Sub 開始計時器() RunWhen = Now + TimeValue("00:30:00") ' 每30分鐘更新一次 Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _ LatestTime:=RunWhen + TimeValue("00:01:00"), _ Schedule:=True End Sub Sub 停止計時器() On Error Resume Next Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _ LatestTime:=RunWhen + TimeValue("00:01:00"), _ Schedule:=False End Sub
你可以調整TimeValue
來更改自動更新的頻率。
結語
通過設置Excel自動更新股票數據,你可以節省大量時間並迅速掌握市場動態。希望這篇教學能夠幫助到你,讓你在投資之路上更加順利。