我在 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 宏中使用选择。
| 归档时间: |
|
| 查看次数: |
45363 次 |
| 最近记录: |