Worksheet.Copy 方法 (Excel)
将工作表复制到当前工作簿或新工作簿中的另一个位置。
语法
表达式。复制) 之前、 之后 (
表达 一个代表 Worksheet 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Before | 可选 | Variant | 将要在其之前放置所复制工作表的工作表。 如果指定 After , 则 不能指定 Before。 |
After | 可选 | Variant | 将要在其之后放置所复制工作表的工作表。 如果指定了 Before,则不能指定 After。 |
备注
如果未指定 Before 或 After,Microsoft Excel 将创建包含复制的 Worksheet 对象的新工作簿。 新创建的工作簿保存 Application.ActiveWorkbook 属性,并包含单个工作表。 单个工作表保留源工作表的 Name 和 CodeName 属性。 如果复制的工作表包含 VBA 项目中的工作表代码表,该代码表也会携带到新工作簿中。
可以采用类似方式将多个工作表的数组选择复制到新的空白 Workbook 对象。
Source 和 Destination 必须位于同一个 Excel.Application 实例中,否则将引发运行时错误“1004”:如果使用了类似 Sheet1.Copy objWb.Sheets(1)
内容,则不支持此类接口,或者运行时错误“1004”:如果使用了类似 ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1)
内容,则 Worksheet 类的 Copy 方法失败。
示例
此示例复制工作表 Sheet1,并将其放置在工作表 Sheet3 之后。
Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")
本示例首先将 Sheet1 复制到新的空白工作簿,然后保存并关闭新工作簿。
Worksheets("Sheet1").Copy
With ActiveWorkbook
.SaveAs Filename:=Environ("TEMP") & "\New1.xlsx", FileFormat:=xlOpenXMLWorkbook
.Close SaveChanges:=False
End With
本示例将工作表 Sheet1、Sheet2 和 Sheet4 复制到新的空白工作簿,然后保存并关闭新工作簿。
Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Copy
With ActiveWorkbook
.SaveAs Filename:=Environ("TEMP") & "\New3.xlsx", FileFormat:=xlOpenXMLWorkbook
.Close SaveChanges:=False
End With
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。