Вызовите API Google Finance в Excel
Я хочу получить стоимость акций через Google Finance API в Excel.
Ресурс: https://finance.google.com/finance/info
Метод: GET
Параметры:
- client = ig
- q =
<exchange code>:<stock code>
пример:
https://finance.google.com/finance/info?client=ig&q=TPE:2330
этот запрос получит цену акций Тайваньского Полупроводника.
Есть ли решение, независимо от того, выполняете ли какие-либо настройки рабочего листа или записываете код VBA, чтобы достичь моей цели?
Да. Для получения ответа используются методы XMLHTTPRequest, https://msdn.microsoft.com/en-us/library/ms759148%28v=vs.85%29.aspx . И разбор JSON с VBA для разбора ответа, поскольку это JSON. Простейший метод для разбора JSON с VBA описан здесь. Разбор JSON в 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