Excel货币(FX)每日汇率

问题描述 投票:2回答:2

在当前版本的Excel(Office 365 / Feb 2019)中获取近似每日外汇汇率的最简单的免费方式是什么。

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

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

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

excel vba currency rate
2个回答
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的信息 - 这里你有来自世界各地的货币:)


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"部分)和检索您的价值(即With htm.getelementbyid("cc-ratebox")部分 - 就本网站提供的内容而言通过XmlHttpRequest简单地访问他们的价值观

© www.soinside.com 2019 - 2024. All rights reserved.