gpt4 book ai didi

excel - 如何将一个 Excel 表 (ListObject) 中的多行追加到另一个表?

转载 作者:行者123 更新时间:2023-12-02 07:52:31 25 4
gpt4 key购买 nike

我有两个表:

    Table_1         Table_2
A B C A B C
------------- -------------
1| A1| B1| C1| 1| A2| B2| C2|
2| A1| B1| C1| 2| A2| B2| C2|
3| A1| B1| C1| 3| A2| B2| C2|

结果表:

    Table_1   
A B C
-------------
1| A1| B1| C1|
2| A1| B1| C1|
3| A1| B1| C1|
4| A2| B2| C2|
5| A2| B2| C2|
6| A2| B2| C2|

Table_2 是一个临时表 (ListObject),它使用数据连接在数据库中查询条目。

Table_1 是一个表 (ListObject),充当条目的集合列表。它保持独立,因为它 (1) 缩短了 Table_2 中的查询时间,并且 (2) 进行了一些编程编辑。

我的 VBA 代码将 Table_2 复制到 Table_1,然后更新 Table_2 的连接字符串,以不包含日期在 Table_1 范围内的条目。结果是Table_2只拉取新数据。

我的代码(正确)将数据从 Table_2 复制到 Table_1:

For Each temprow in Table_2.ListRows
Set newRow = table_1.ListRows.Add
tempRow.Range.Copy
newRow.Range.PasteSpecial xlPasteValues
Next

如果 Table_2(新条目)只有十几个条目,这非常有效。有时,Table_2 会有几百个条目,这实际上需要 20 分钟才能完成。我怀疑这是因为我正在执行数百次 .Copy 和 .Paste 迭代。

有没有一种方法可以批量完成:复制 Table_2 的所有内容并将其作为 Table_1 的一部分?我觉得我想做的事情应该只需要 1 秒就能以编程方式执行,而不是 20 分钟。我没有任何条件或异常(exception)。我想要 Table_2 中的所有内容,这应该会让事情变得简单。我可能会以错误的方式处理这件事。任何帮助表示赞赏。谢谢。

最佳答案

也许是这样,适本地更改工作表:

Option Explicit
Sub CombineTables()
Dim LO1 As ListObject, LO2 As ListObject

With Sheet3
Set LO1 = .ListObjects("Table_1")
Set LO2 = .ListObjects("Table_2")
End With

LO2.DataBodyRange.Copy Destination:= _
LO1.DataBodyRange.Offset(LO1.DataBodyRange.Rows.Count).Resize(1, 1)

End Sub

关于excel - 如何将一个 Excel 表 (ListObject) 中的多行追加到另一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com