在Excel中致电Google Finance API
我想通过Excel中的Google Finance API获取股票价格。
资源: https://finance.google.com/finance/info
: https://finance.google.com/finance/info
方法: GET
参数:
- 客户端= ig
- q =
<exchange code>:<stock code>
例:
https://finance.google.com/finance/info?client=ig&q=TPE:2330
这个要求会得到台积电的股价。
有没有解决scheme,无论是做一些工作表的设置或写一些VBA代码,以达到我的目标?
是。 方法是XMLHTTPRequest, https: //msdn.microsoft.com/en-us/library/ms759148%28v=vs.85%29.aspx获取响应。 并parsingJSON与VBAparsing响应,因为它是JSON。 使用VBAparsingJSON的最简单的方法在这里描述parsingExcel VBA中的JSON,但是有许多更舒适的库可用于search关键字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