将表复制到另一个工作表
在工作表(1)中有两个表,“表1”和“表2”。
我想将这些表复制到另一个工作表(2),其中Table1的左上angular位于单元格“A1”的新工作表中,Table2的左上angular单元格位于单元格“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
这似乎很简单,因为它部分工作,但我认为我有一个语法错误。
您应该能够通过提供目的地直接复制。
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
通过直接明确地处理对象及其目的地,您可以避免.Activate
和.Select
。
请参阅如何避免使用Excel中的selectVBAmacros来获取更多的方法来摆脱依靠select和activate来实现您的目标。
另一种方法,更简单和更短:
Range("Table1[#All]").copy Range("L1")