首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将整个工作表复制到Excel 2010中的新工作表

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

Stack Overflow用户
提问于 2011-12-09 08:32:24
回答 6查看 329.9K关注 0票数 27

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

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

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

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

我很惊讶,现在转换到.xlsm会导致这个问题。任何建议或想法都会很棒。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-09 08:49:38

更简单的方法是运行一个精确的副本,如下所示,将副本作为最后一个工作表放入

Sub Test()
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Master")
ws1.Copy ThisWorkbook.Sheets(Sheets.Count)
End Sub
票数 39
EN

Stack Overflow用户

发布于 2011-12-09 15:19:50

ThisWorkbook.Worksheets("Master").Sheet1.Cells.Copy _
    Destination:=newWorksheet.Cells

上面的代码将复制单元格。如果你真的想复制整个工作表,那么我会选择@brettdj's answer

票数 18
EN

Stack Overflow用户

发布于 2014-04-01 04:46:53

' Assume that the code name the worksheet is Sheet1

' Copy the sheet using code name and put in the end.
' Note: Using the code name lets the user rename the worksheet without breaking the VBA code
Sheet1.Copy After:=Sheets(Sheets.Count)

' Rename the copied sheet keeping the same name and appending a string " copied"
ActiveSheet.Name = Sheet1.Name & " copied"
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8439657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档