使用vba将一列日期循环到url行中以进行Web查询并从xe.com/currencytables中检索汇率表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用vba将一列日期循环到url行中以进行Web查询并从xe.com/currencytables中检索汇率表相关的知识,希望对你有一定的参考价值。
我有一列日期(在Excel电子表格中),并希望将这些日期插入网络查询的url行中,以生成一个汇率表,我希望将其放入电子表格中。例如:
A栏2019-12-092019-12-082019-12-07
对于A列中的每个日期,我想将它们插入网址行:以下是从Web使用--Get Data录制的VBA宏。然后,我将https://www.xe.com/currencytables/?from=USD&date=2019-12-10复制并粘贴到url(弹出窗口)中,单击OK,然后选择表0生成日期为2019-12-10的汇率表。我想自动执行此过程,并使用A列中的日期。我没有任何有关功率查询的经验。提前谢谢你的帮助。
Sub Macro2()
'
' Macro2 Macro
'
'
ActiveWorkbook.Queries.Add Name:="Table 0 (6)", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Web.Page(Web.Contents(""https://www.xe.com/currencytables/?from=USD&date=2019-12-08""))," & Chr(13) & "" & Chr(10) & " Data0 = Source0[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes(Data0,""Currency code ??"", type text, ""Currency name ??"", type text, ""Units per USD"", type number, ""USD per Unit"", type number)" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 0 (6)"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Table 0 (6)]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_0__6"
.Refresh BackgroundQuery:=False
End With
End Sub
答案
为了进行测试,我更改了网址:
以上是关于使用vba将一列日期循环到url行中以进行Web查询并从xe.com/currencytables中检索汇率表的主要内容,如果未能解决你的问题,请参考以下文章
如何利用EXCEL VBA将一列数据中不重复的数据读取到数组中?