Excel货币(FX)每日汇率

时间:2019-02-21 07:22:15

标签: excel vba currency rate

在当前版本的Excel(Office 365/2019年2月)中,获取近似每日FX汇率的最简单的免费方法是什么。

我对历史数据不感兴趣,我只想知道从货币X到货币Y的最后一个已知日汇率,并且在打开文档时仅自动刷新一次。

曾经有一些VBA可以从某些金融站点提取数据,但是我找不到任何仍然有效的数据。

一个可能的解决方案是openexchangerates.org,但是我将如何在Excel中使用它们的API?

2 个答案:

答案 0 :(得分:0)

以下功能当前可在我的一本工作簿上使用:

Public Function getConversionRate(ByVal ccy1 As String, ByVal ccy2 As String) As Double
    Dim htm As Object
    Set htm = CreateObject("htmlFile")
    With CreateObject("msxml2.xmlhttp")
        .Open "GET", "https://themoneyconverter.com/" & ccy1 & "/" & ccy2 & ".aspx", False
        .send
        htm.body.innerhtml = .responsetext
    End With
    With htm.getelementbyid("cc-ratebox")
        myRate = Right(.innerText, Len(.innerText) - 10)
        getConversionRate = myRate
    End With

    htm.Close
End Function

样品用量:

enter image description here

为了清楚起见,以上函数在特定网站上使用了简单的XmlHttp请求(在我的情况下是https://themoneyconverter.com,示例用法为https://themoneyconverter.com/EUR/USD),然后搜索转换根据请求在响应中获得的HTML中的价格(对于此特定网站,该值包含在ID为cc-ratebox的元素中)。

您当然可以在任何其他网站上做同样的事情,您要做的就是调整请求(例如.Open "GET", "your adapted link"部分)和获取价值(例如{{ 1}}-就此网站而言,可以通过With htm.getelementbyid("cc-ratebox")

轻松访问其值

答案 1 :(得分:0)

Matteo NNZ的宏非常好:)

也可以使用数据->从Web(将网站的链接插入表格并选择表格)。之后,excel将自动从网站收集信息。为了刷新信息,您需要在新表中选择单元格,然后单击查询选项卡->刷新。

要在每次打开工作簿时刷新,只需在工作表的右侧查看,您将在“查询和连接”列表下看到您的表。在适当的表->属性上单击绑定鼠标右键,然后选择“打开文件时刷新数据”。您可以添加计时器以刷新数据,例如每分钟:)

就我而言,我使用链接:https://www.x-rates.com/table/?from=USD&amount=1

单击确定保存工作簿,它已完成。

示例:

1)用于刷新的属性:https://i.stack.imgur.com/GRTsM.png

2)有关表https://i.stack.imgur.com/7Odrh.png的信息-在这里您有来自世界各地的货币:)