将整个工作表复制到Excel 2010中的新工作表

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我发现了类似的问题,它们涉及在一个工作簿中复制整个工作表并将其粘贴到另一个工作簿,但我感兴趣的只是复制整个工作表并将其粘贴到新的工作表中--在同一个工作簿中。

我正在将2003.xls文件转换为2010.xlsm,用于在工作表之间复制和粘贴的旧方法没有粘贴正确的行高。我最初的解决方法是遍历每一行并从我要复制的工作表中获取行高,然后循环遍历并将行高的值插入我要粘贴到的工作表中,但是这种方法的问题是工作表包含生成新行的按钮,这些按钮会更改行号,工作表的格式是这样的,所有行都不能只是一个宽度。

我真正想要做的就是复制整个工作表并粘贴它。下面是2003版本的代码:

ThisWorkbook.Worksheets("Master").Cells.Copy
newWorksheet.Paste

我感到惊讶的是,转换到.xlsm会导致这种情况现在中断。任何建议或想法都会很好。

提问于
用户回答回答于

只需运行如下所示的精确副本,将副本作为最后一张放入,就更简单了。

Sub Test()
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Master")
ws1.Copy ThisWorkbook.Sheets(Sheets.Count)
End Sub
用户回答回答于
ThisWorkbook.Worksheets("Master").Sheet1.Cells.Copy _
    Destination:=newWorksheet.Cells

以上将复制这些单元格。

扫码关注云+社区