【发布时间】:2016-01-27 08:02:17
【问题描述】:
我想创建一个自定义函数来检索以 XML URL 链接形式提供的特定数据。这是我第一次在 Excel 中处理 XML,更不用说 VBA,并且正在努力解决它。
我已经能够编写一个程序(本地货币汇率检索),只需按下一个自定义按钮即可运行,该按钮运行以下代码:
Sub FX_Retrieve()
Dim FX As String
Dim CustomDate As String
FX = Range("FX")
CustomDate = Range("CustomDate")
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Rows(2).Clear
ActiveWorkbook.XmlImport URL:= _
"http://www.cbu.uz/section/rates/widget/xml/" & FX & "/" & CustomDate, ImportMap:= _
Nothing, Overwrite:=True, Destination:=Range("C2")
Range("D:D").EntireColumn.AutoFit
Rows(2).HorizontalAlignment = xlCenter
Columns(6).ClearContents
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub
以防万一,XML 输出如下所示: 2015-12-29 美元 2809.98 1 因此,需要在我的代码中进行一些格式化。
在单次调用外汇汇率的情况下,该程序没有问题! 现在,我想更进一步并创建一个函数。这就是我提出几个问题的地方:
- 我需要从 xml 输出中提取特定的子节点(速率),如下所示:
'
<response>
<date_act>2015-12-29</date_act>
<symbol>USD</symbol>
<rate>2809.98</rate>
<size>1</size>
</response>
我已经找到了类似的东西(如这里:Excel VBA getting specific node from XML),但我无法在我的情况下应用它。
- 就我所见,函数的创建不允许采用与我的过程中相同的方法。
任何帮助将不胜感激!
【问题讨论】: