Web查询多个表到一列
Webqueries multiple tables into one column
我编写了一个代码,使用 webquery 从网站(多个页面)循环下载数据。
一切都很好,但如果设置 ActiveSheet.QueryTables(1)
,它不会在同一列 ("B2") 中下载数据,而是从 B2 开始创建一个 table,但在下一个循环(下一个网页)中,它将覆盖先前下载的数据再次从 B2 开始。
它必须将下一个网页数据添加到工作表中的另一个单元格范围(同一列中 B2 向下 100 个单元格),但即使我更改了范围,数据也会下载到相同的位置。
如果要在 ActiveSheet.QueryTables(i)
中更改 i
,它会在不同的列(不在同一列)中创建多个 table。
With ActiveSheet.QueryTables(i)
.Connection = "URL;" & page
.Destination = Range(Cells(n + 1, 2), Cells(n + 100, 2))
.Refresh
End With
i = i + 1
这个解决方案可能会解决您的问题(假设 n 以 1 开头):
.Destination = Range(Cells((n-1)*100 + 2, 2), Cells((n * 100) + 1, 2))
顺便说一句,您更需要的 .Destination
值是这一行:
.Destination = Cells((n-1)*100 + 2, 2)
我编写了一个代码,使用 webquery 从网站(多个页面)循环下载数据。
一切都很好,但如果设置 ActiveSheet.QueryTables(1)
,它不会在同一列 ("B2") 中下载数据,而是从 B2 开始创建一个 table,但在下一个循环(下一个网页)中,它将覆盖先前下载的数据再次从 B2 开始。
它必须将下一个网页数据添加到工作表中的另一个单元格范围(同一列中 B2 向下 100 个单元格),但即使我更改了范围,数据也会下载到相同的位置。
如果要在 ActiveSheet.QueryTables(i)
中更改 i
,它会在不同的列(不在同一列)中创建多个 table。
With ActiveSheet.QueryTables(i)
.Connection = "URL;" & page
.Destination = Range(Cells(n + 1, 2), Cells(n + 100, 2))
.Refresh
End With
i = i + 1
这个解决方案可能会解决您的问题(假设 n 以 1 开头):
.Destination = Range(Cells((n-1)*100 + 2, 2), Cells((n * 100) + 1, 2))
顺便说一句,您更需要的 .Destination
值是这一行:
.Destination = Cells((n-1)*100 + 2, 2)