0

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

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

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

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

1 回答 1

0

可能此解决方案将解决您的问题(假设 n 以 1 开头):

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

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

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

有关属性,请参阅此 MSDN 参考.Destination

于 2015-02-02T13:54:37.340 回答