将数据从一个表复制/插入另一个表

时间:2016-07-05 10:42:19

标签: excel vba excel-vba

我的目标是从table1复制数据并将其插入table2。 我尝试了以下方法:

        Sub Integration()
        Dim tbl1 As Range
        Dim tbl2 As Range
            Application.ScreenUpdating = False
                Set tbl1 = ActiveSheet.ListObjects("Table1").DataBodyRange
                Set tbl2 = ActiveSheet.ListObjects("Table2").DataBodyRange

                    tbl1.Copy
                    tbl2.Insert Shift:=xlDown

                Application.CutCopyMode = False
                tbl1.ClearContents
            Application.ScreenUpdating = True
        End Sub

但是,它不是复制Table1并将其插入Table2,而是复制Table2,ClearContent,并将其插入表1的数据中。

问题是它在另一张纸上完美运行,而且它的代码完全相同 任何帮助,将不胜感激。由于
Pre-Integration
After integration

1 个答案:

答案 0 :(得分:1)

使用tbl2.Offset(tbl2.Rows.Count)引用Table2之后的第一个空白行。接下来使用tbl1.Copy tbl1.Copy tbl2.Offset(tbl2.Rows.Count)粘贴Table1的内容。

Sub Integration()
    Dim tbl1 As Range
    Dim tbl2 As Range

    Application.ScreenUpdating = False
    Set tbl1 = ActiveSheet.ListObjects("Table1").DataBodyRange
    Set tbl2 = ActiveSheet.ListObjects("Table2").DataBodyRange

    tbl1.Copy tbl2.Offset(tbl2.Rows.Count)

    Application.CutCopyMode = False
    tbl1.ClearContents
    Application.ScreenUpdating = True
End Sub