0

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

资源:https://finance.google.com/finance/info

方法:GET

参数:

  • 客户 = ig
  • q =<exchange code>:<stock code>

例子:

https://finance.google.com/finance/info?client=ig&q=TPE:2330

此请求将获得台积电的股价。

是否有解决方案,无论是做一些工作表设置还是编写一些 VBA 代码,来达到我的目标?

4

1 回答 1

1

是的。获取响应的方法是 XMLHTTPRequest、https: //msdn.microsoft.com/en-us/library/ms759148%28v=vs.85%29.aspx。并使用 VBA 解析 JSON 以解析响应,因为它是 JSON。此处描述了使用 VBA 解析 JSON 的最简单方法在 Excel VBA 中解析 JSON,但有更舒适的库可用于搜索关键字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
于 2015-10-26T11:46:22.833 回答