【问题标题】:Webqueries multiple tables into one column将多个表 Web 查询到一列中
【发布时间】:2015-02-02 13:40:47
【问题描述】:

我编写了一个代码,它使用 webquery 从网站(几个页面)循环下载数据。 一切都很好,但是如果设置ActiveSheet.QueryTables(1),它不会在同一列(“B2”)中下载数据,它会从 B2 开始创建一个表,但在下一个循环(下一个网页)上,它将再次从 B2 开始覆盖先前下载的数据.

它必须将下一个网页数据添加到另一个单元格范围内的工作表中(同一列中从 B2 向下 100 个单元格),但即使我更改了范围,数据也会下载到同一位置。

如果在ActiveSheet.QueryTables(i) 中更改i,它会在不同的列中创建多个表(不在同一个列中)。

With ActiveSheet.QueryTables(i)
    .Connection = "URL;" & page
    .Destination = Range(Cells(n + 1, 2), Cells(n + 100, 2))
    .Refresh
End With
i = i + 1

【问题讨论】:

    标签: excel vba excel-web-query


    【解决方案1】:

    这个解决方案可能会解决你的问题(假设 n 以 1 开头):

    .Destination = Range(Cells((n-1)*100 + 2, 2), Cells((n * 100) + 1, 2))
    

    顺便说一句,作为.Destination 值,您更需要的是这一行:

    .Destination = Cells((n-1)*100 + 2, 2)
    

    this MSDN Reference for .Destination property.

    【讨论】:

    • 谢谢@KazJaw,但是当我清除以前的数据时出现错误“下标超出范围”
    • 我认为您的循环以 n=0 开头,正如我所说,我假设 n 以 1 开头。或者您在哪一行有错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    相关资源
    最近更新 更多