将表格复制到另一个工作表

Ale*_*664 1 excel vba

我在 Worksheet(1) 中有 2 个表,“Table1”和“Table2”。

我想将这些表格复制到另一个工作表 (2),其中 Table1 的左上角位于单元格“A1”的新工作表中,Table2 的左上角单元格位于单元格“O1”的新工作表中。

除非 ActiveCell 是 Sheet2 中的 A1,否则表格将无法正确复制和粘贴。我没有正确激活工作表吗?

Sub CopyTables()
Worksheets(2).Activate          'must be on ExHouStorm or Worksheet(1)
Worksheets(1).ListObjects("Table1").Range.Copy
Worksheets(2).Paste


Worksheets(1).ListObjects("Table2").Range.Copy
Worksheets(2).Range("O1").Select
Worksheets(2).Paste

End Sub
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,因为它部分有效,但我认为我有一个语法错误。

小智 8

您应该能够通过提供目的地直接复制。

Sub CopyTables()

    Worksheets(1).ListObjects("Table1").Range.Copy _
        Destination:=Worksheets(2).Range("A1")


    Worksheets(1).ListObjects("Table2").Range.Copy _
        Destination:=Worksheets(2).Range("O1")

End Sub
Run Code Online (Sandbox Code Playgroud)

通过直接和明确解决的对象和他们的目的地,你能避免.Activate和.Select完全。

有关摆脱依赖选择和激活来实现目标的更多方法,请参阅如何避免在 Excel VBA 宏中使用选择。