Worksheet.Copy 方法 (Excel)

将工作表复制到当前工作簿或新工作簿中的另一个位置。

语法

表达式复制) 之前之后 (

表达 一个代表 Worksheet 对象的变量。

参数

名称 必需/可选 数据类型 说明
Before 可选 Variant 将要在其之前放置所复制工作表的工作表。 如果指定 After 不能指定 Before。
After 可选 Variant 将要在其之后放置所复制工作表的工作表。 如果指定了 Before,则不能指定 After

备注

如果未指定 BeforeAfter,Microsoft Excel 将创建包含复制的 Worksheet 对象的新工作簿。 新创建的工作簿保存 Application.ActiveWorkbook 属性,并包含单个工作表。 单个工作表保留源工作表的 NameCodeName 属性。 如果复制的工作表包含 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。