【问题标题】:Excel currency (FX) daily rateExcel 货币 (FX) 每日汇率
【发布时间】:2019-02-21 07:22:15
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: excel vba currency rate


    【解决方案1】:

    来自 Matteo NNZ 的宏真的很棒 :)

    也可以使用 Data -> From 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 的信息 - 这里有来自世界各地的货币 :)

    【讨论】:

      【解决方案2】:

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

      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,非常感谢。我希望我可以标记 2 个答案。我有一个类似的宏(有几个版本浮动)但它停止工作,这就是我问这个问题的原因。它可能不是宏,而是我使用的 URL,因此您的回答确实提供了解决方案。我标记@Adorovosky 的答案只是因为我以前没有见过这个,它与一些相对较新的 Excel 功能有关。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 2021-01-30
      相关资源
      最近更新 更多