使用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将一列的字符串与第二列的字符串进行比较

如何利用EXCEL VBA将一列数据中不重复的数据读取到数组中?

用于比较具有包含日期​​的单元格的列并将特定文本粘贴到另一列的 Vba 代码

使用VBA循环遍历每一列并从大到小排序

填充2维VBA阵列Excel