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 的信息 - 这里你有来自世界各地的货币 :)
在 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 的信息 - 这里你有来自世界各地的货币 :)