Excel 2010用VBAreplaceWEBSERVICE()
我有一个电子表格,将美元兑换成欧元。
我devise了Excel 2013,我使用新functionWEBSERVICE从互联网,API的历史汇率检索:
http://api.fixer.io/2017-01-07?base=USD&symbols=EUR
我的公式如下所示:
=IF(OFFSET(INDIRECT("R[0]C",),0,-2)<>"",SUBSTITUTE(MID(WEBSERVICE("http://api.fixer.io/"&TEXT(EOMONTH(OFFSET(INDIRECT("R[0]C",),0,-2),0),"yyyy-mm-dd")&"?base=USD&symbols=CNY"),50,6),"}",""),"")
说明:如果当前单元格左边的第二个单元格不是空的,则用Web数据填充它。 公式中的参数是月结束date,也是由此表格中的单元格计算的。
该表有多行,这对我们来说是完美的,唯一的问题是,有些用户仍然在Excel 2010或更高版本,是否有办法在VBA中做到这一点?
最简单的VBA WEBSERVICE
版本将是:
Public Function myWEBSERVICE(strURL As String) As String Dim oWinHttp As Object Set oWinHttp = CreateObject("MSXML2.XMLHTTP") oWinHttp.Open "GET", strURL, False oWinHttp.send "" myWEBSERVICE = oWinHttp.ResponseText End Function
用作UDF(用户定义函数)作为单元格公式,如下所示:
=mywebservice("http://api.fixer.io/"&TEXT(A1,"yyyy-mm-dd")&"?base=USD&symbols=CNY")
A1
包含date。
有关参考请参阅responseText属性(IXMLHTTPRequest) 。 JScript中的示例必须转换为VBA。