Excel 货币 (FX) 每日汇率

Excel currency (FX) daily rate

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

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

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

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

以下功能目前适用于我的一个工作簿:

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

示例用法:

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

你当然可以对任何其他网站做同样的事情,你需要做的就是调整请求(即 .Open "GET", "your adapted link" 部分)和检索你的价值(即部分With htm.getelementbyid("cc-ratebox") - 就本网站而言,通过 XmlHttpRequest

提供对其值的简单访问

Matteo NNZ 的宏真的很棒 :)

也可以通过使用数据 -> 来自网络(将网站的 link 与 table 和 select 插入 table)。之后 excel 将自动从网站收集信息。为了刷新信息您需要 select 新单元格 table 并单击“查询”选项卡 -> “刷新”。

为了每次打开您的工作簿时都刷新,只需查看您的 sheet 的右侧,您将在查询和连接列表下看到您的 table。在 table -> 属性和 select "Refresh data when opening the file" 上点击鼠标右键。您可以添加计时器来刷新数据,例如每隔一分钟 :)

在我的例子中,我使用 link : https://www.x-rates.com/table/?from=USD&amount=1

点击确定保存工作簿,完成。

示例:

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

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