title | keywords | f1_keywords | api_name | ms.assetid | ms.date | ms.localizationpriority | ||
---|---|---|---|---|---|---|---|---|
Worksheet.Copy method (Excel) |
vbaxl10.chm174074 |
|
|
ace07575-34f4-a4ae-0922-a2671f2df1ba |
05/30/2019 |
medium |
Copies the sheet to another location in the current workbook or a new workbook.
expression.Copy (Before, After)
expression A variable that represents a Worksheet object.
Name | Required/Optional | Data type | Description |
---|---|---|---|
Before | Optional | Variant | The sheet before which the copied sheet will be placed. You cannot specify Before if you specify After. |
After | Optional | Variant | The sheet after which the copied sheet will be placed. You cannot specify After if you specify Before. |
If you don't specify either Before or After, Microsoft Excel creates a new workbook that contains the copied Worksheet object. The newly created workbook holds the Application.ActiveWorkbook property and contains a single worksheet. The single worksheet retains the Name and CodeName properties of the source worksheet. If the copied worksheet held a worksheet code sheet in a VBA project, that is also carried into the new workbook.
An array selection of multiple worksheets can be copied to a new blank Workbook object in a similar manner.
Source and Destination must be in the same Excel.Application instance, otherwise it will raise a runtime error '1004': No such interface supported, if something like Sheet1.Copy objWb.Sheets(1)
was used, or a runtime error '1004': Copy method of Worksheet class failed, if something like ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1)
was used.
This example copies Sheet1, placing the copy after Sheet3.
Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")
This example first copies Sheet1 to a new blank workbook, and then saves and closes the new workbook.
Worksheets("Sheet1").Copy
With ActiveWorkbook
.SaveAs Filename:=Environ("TEMP") & "\New1.xlsx", FileFormat:=xlOpenXMLWorkbook
.Close SaveChanges:=False
End With
This example copies worksheets Sheet1, Sheet2, and Sheet4 to a new blank workbook, and then saves and closes the new workbook.
Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Copy
With ActiveWorkbook
.SaveAs Filename:=Environ("TEMP") & "\New3.xlsx", FileFormat:=xlOpenXMLWorkbook
.Close SaveChanges:=False
End With
[!includeSupport and feedback]