在Excel中致电Google Finance API

我想通过Excel中的Google Finance API获取股票价格。

资源: https://finance.google.com/finance/infohttps://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