我想在Excel中通过Google财经API获取股票价格。
资源:https://finance.google.com/finance/info
方法:GET
参数:
<exchange code>:<stock code>
示例:
https://finance.google.com/finance/info?client=ig&q=TPE:2330
此要求将获得台湾半导体的股价。
是否有解决方案,无论是设置工作表还是编写一些VBA代码,都能实现我的目标?
答案 0 :(得分:1)
是。方法是XMLHTTPRequest,https://msdn.microsoft.com/en-us/library/ms759148%28v=vs.85%29.aspx用于获取响应。并使用VBA解析JSON以解析响应,因为它是JSON。这里描述了使用VBA解析JSON的最简单方法Parsing JSON in Excel VBA,但搜索关键字Excel VBA parse JSON
提供了更舒适的库。
您的用例的简单示例:
Sub testGetJSON()
sExchangeCode = "TPE"
sStockCode = "2330"
sURL = "https://finance.google.com/finance/info?client=ig&q=" & sExchangeCode & ":" & sStockCode
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", sURL, False
oXMLHTTP.send
sJSONResp = oXMLHTTP.responseText
sJSONResp = Mid(sJSONResp, 4, Len(sJSONResp))
Set oScript = CreateObject("ScriptControl")
oScript.Language = "jscript"
oScript.AddCode "function getProperty(jsonObj, propertyName) { return jsonObj[propertyName]; } "
Set oJSObj = oScript.eval("(" & sJSONResp & ")")
Set oProp0 = oScript.Run("getProperty", oJSObj, "0")
sLCur = oProp0.l_cur
sLT = oProp0.lt
MsgBox sLT & " : " & sLCur
End Sub