我想复制所有数据并将其粘贴到新工作簿中。通过以下编码,我可以粘贴所有值,但它创建了两个工作簿并将数据粘贴到一个工作簿中。
我想只创建一个新工作簿并通过数据。不确定出了什么问题。
On Error Resume Next
ThisWorkbook.Sheets(2).Copy
Dim wkb As Workbook
Set wkb = Workbooks.Add
wkb(1).PasteSpecial xlPasteValues
On Error GoTo 0
答案 0 :(得分:2)
Copy
方法在应用于工作表和应用于范围时具有不同的含义:
Copy method of a Worksheet会创建工作表的副本;如果没有任何参数,则将副本放在新工作簿中。
Copy method of a Range会将范围的副本放在剪贴板上,然后您可以将其粘贴到其他位置。
所以在你的情况下,声明
ThisWorkbook.Sheets(2).Copy
已将工作表复制到新工作簿中。
如果要显式创建新工作簿,则应将使用的范围复制到剪贴板:
ThisWorkbook.Sheets(2).UsedRange.Copy
答案 1 :(得分:0)
这不是答案,但让我这样做而不是你自己:
On Error Resume Next
ThisWorkbook.Sheets(2).Copy
Dim wkb As Workbook
Set wkb = Workbooks.Add
wkb(1).PasteSpecial xlPasteValues
On Error GoTo 0