【问题标题】:Call Google Finance API in Excel [closed]在 Excel 中调用 Google Finance API [关闭]
【发布时间】:2015-10-26 09:11:58
【问题描述】:

我想通过 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 代码,来达到我的目标?

【问题讨论】:

    标签: excel vba google-finance-api


    【解决方案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
    

    【讨论】:

    • 谢谢阿克塞尔。使用 MSXML2.XMLHTTP,我成功地将 JSON 返回到我的工作表中。 ScriptControl 未能执行(错误:429)。我认为问题在于我的 Windows 是 64 位的。无论如何,非常感谢。
    • @Veck Hsiao:是的ScriptControl 只是一个 32 位 ActiveX 组件。尝试使用可用的库之一来解析带有 VBA 的 JSON。
    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多