我正在尝试做应该非常简单的事情。从现有工作簿中的一张工作表复制数据,创建一个新工作簿,将新数据粘贴到其中,然后保存并关闭新工作簿。但是,每次我引用新工作簿时,Excel 都会创建另一个工作簿。我一定犯了一个非常基本的错误。
Dim oldWB, newWB As Workbook
Set oldWB = ActiveWorkbook
Set newWB = Workbooks.Add
oldWB.Worksheets("Sheet1").Copy
newWB.Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
newWB.SaveAs "W:\filepath\CopyPasteTest.xlsx"
newWB.Close
Worksheet.Copy
不带任何参数创建一个新工作簿。
来自文档:
如果您未指定 Before 或 After,Microsoft Excel 将创建一个包含复制的 Worksheet 对象的新工作簿。
Range.Copy
:
oldWB.Worksheets("Sheet1").UsedRange.Copy