Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, 2016, 2019, Excel in Microsoft 365, and 2021. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Copying a Worksheet.

Copying a Worksheet

Written by Allen Wyatt (last updated June 18, 2022)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, Excel in Microsoft 365, and 2021


9

There are many times I have needed to duplicate a worksheet. Often it is because I have spent quite a bit of time developing a worksheet and I want to use it as a starting point for another. Excel lets you copy worksheets in the following manner:

  1. Right-click on the worksheet tab of the worksheet you want to copy. Excel displays a Context menu.
  2. Choose Move or Copy Sheet from the Context menu. Word displays the Move or Copy dialog box. (See Figure 1.)
  3. Figure 1. The Move or Copy dialog box.

  4. If you want to copy the worksheet to another workbook, select that workbook's name in the To Book pull-down list. (The target workbook must be open within Excel.)
  5. In the Before Sheet list, select the worksheet that should come after the worksheet you selected in step 1.
  6. Make sure the Create a Copy check box is selected.
  7. Click on OK. The worksheets are reordered.

There is a faster way to copy worksheets in the same workbook. All you need to do is hold down the Ctrl key as you drag a worksheet tab to a new position in the workbook. Excel automatically copies the worksheet to the new position, leaving the old sheet intact.

There is also a "gotcha" here that you need to be aware of: Excel can sometimes balk if you try to copy a worksheet from a workbook saved in Excel's native format to a workbook that is saved in the older (pre-2007, XLS) format. This is because Excel can handle, currently, many, many more rows and columns in a worksheet than it could in earlier years. That means that when you try to transfer, Excel needs to let you know that it will truncate some data that may be in areas not supported in the earlier-formatted workbook.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (12359) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, Excel in Microsoft 365, and 2021. You can find a version of this tip for the older menu interface of Excel here: Copying a Worksheet.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Editing a Template

Editing a template can be as easy as editing a regular Word document, provided you know where to find the templates. Here ...

Discover More

Renaming a File

Need to rename a file in a macro? It's easy to do using the Name command, as discussed in this tip.

Discover More

Quickly Inserting Table Rows

Need to pop a few extra rows into a table? It is easy to do using the same tools you used to create the table in the ...

Discover More

Solve Real Business Problems Master business modeling and analysis techniques with Excel and transform data into bottom-line results. This hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables. Check out Microsoft Excel 2013 Data Analysis and Business Modeling today!

More ExcelTips (ribbon)

Specifying the Number of Worksheets in a New Workbook

By default, a new Excel workbook contains three blank worksheets. You can (and should) configure Excel to whatever number ...

Discover More

Creating a Worksheet Copy by Default

Excel makes it relatively easy to copy worksheets to a different workbook. That doesn't mean it couldn't be made simpler ...

Discover More

Returning a Worksheet Name

Need to know the name of the current worksheet? You can use the CELL function as the basis for finding this information ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] (all 7 characters, in the sequence shown) in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is two more than 7?

2024-02-12 12:10:04

J. Woolley

My Excel Toolbox now includes the following function to return a range on any worksheet in the workbook:
=RangeOnSheet(Target, [Position], [Absolute])
For a complete description, see https://excelribbon.tips.net/T012141
Using RangeOnSheet, the formula in my most recent comment below can be replaced by the following:
=SUM(RangeOnSheet(C1:C9, -1))
See https://sites.google.com/view/MyExcelToolbox


2024-02-05 15:44:56

J. Woolley

Re. my most recent comment below, the final SUM formula should have been generalized by surrounding NameOfSheet with apostrophes in case the sheet's name includes a space character:
=SUM(INDIRECT("'"&NameOfSheet(-1)&"'!C1:C9"))


2024-02-05 14:52:52

J. Woolley

With my previous comment below, I realized the difficulty of preparing a formula that includes the name of a sheet based on its location in the workbook. So My Excel Toolbox now includes the following function to return a sheet's name using its position (even if it is hidden or very hidden):
=NameOfSheet([Position], [Absolute])
Position is the location of the sheet in the workbook or 0 (default) for the current worksheet. If Absolute is FALSE (default), Position is relative to the current worksheet. If Absolute is TRUE, Position is the absolute location of the sheet in the workbook (base-1).
Notice Excel's SHEET function returns the absolute position of a sheet, and the SHEETS function returns the number of sheets (including hidden or very hidden).
The SUM formula in my previous comment below requires the name of the sheet that precedes the current sheet; therefore, it can be simplfied as follows:
=SUM(INDIRECT(NameOfSheet(-1)&"!C1:C9"))
See https://sites.google.com/view/MyExcelToolbox


2024-02-01 16:34:34

J. Woolley

@John Schoonover
I assume the January sheet has a cell formula like this:
    =SUM(December!(C1:C9))
where C1:C9 on the December sheet have values you want to total in the January sheet.
If you put the date of the 1st of each month in a cell like A1, then the value of A1 on the December sheet is 12/1/23 and the value of A1 on the January sheet is 1/1/24, etc. These should be constants or formulas, but don't use a function like TODAY().
Now change the formula on the January sheet to this:
    =SUM(INDIRECT(TEXT(DATE(YEAR(A1),MONTH(A1)-1,1),"mmmm")&"!C1:C9"))
which calculates the December total the same as the original formula. When you copy the January sheet to make the February sheet, put 2/1/24 in cell A1 of the new sheet so that formula will calculate the January total.
Here is a breakdown of the formula:
    DATE(YEAR(A1),MONTH(A1)-1,1) is the 1st of the previous month
    TEXT(DATE(YEAR(A1),MONTH(A1)-1,1),"mmmm") is the previous month's name
    TEXT(DATE(...),"mmmm")&"!C1:C9" is text like "December!C1:C9"
    INDIRECT(...) converts that text into a Sheet!Range address
    SUM(...) totals that Sheet!Range
Instead of entering a specific date in cell A1 when you create next month's sheet, here is a formula for cell A1 based on the sheet's name:
=DATEVALUE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1),1)+1,10)&" 1")
This formula returns the date of the 1st of sheet name's month for the CURRENT year, but the year doesn't really matter in the previous formulas above.
See https://excelribbon.tips.net/T006145_Referencing_Worksheet_Tabs.html


2024-01-31 11:08:54

John Schoonover

I have a month of income and expenses on a worksheet that adds this month's income and expenses to last months from the previous worksheet to create a running total. When I copy January to create February Excel Copies the Totals as if they were Absolute references instead. February Total in the copied sheet looks at December. I need it to look at January.

Can you describe the fix?


2024-01-31 10:33:13

John Schoonover

I have a month of income and expenses on a worksheet that adds this month's income and expenses to last months from the previous worksheet to create a running total. When I copy January to create February Excel Copies the Totals as if they were Absolute references instead. February Total in the copied sheet looks at December. I need it to look at January.

Can you describe the fix?


2022-06-20 20:01:50

Tomek

@Ken Copenhaver
Your solution is not 100% equivalent to Ctrl+dragging the sheet, nor to the first method described by Allen. In particular it does not keep the sheet macros, like sheet event handlers. On the other hand, knowing that you can use the difference for your advantage.

Just as a point of interest, copying and pasting the all of the sheet works slightly differently than selecting, copying and pasting a smaller range. Among other things, the latter does not keep row heights and column widths.


2022-06-20 16:16:13

Ken Copenhaver

You can also simply select all the data in the worksheet to be copied (Ctrl + a) and copy/paste the data to a new worksheet.


2022-06-19 12:13:18

Tomek

Dragging the sheet with the mouse works also between two open workbooks, as long as they are visible on the screen. With Ctrl, it will create a copy in the destination workbook, renaming the sheet to avoid duplicates. Without Ctrl, it will move the sheet between workbooks. You can even move or copy several sheets at once, just select them first.
Beware that if you move all remaining sheets from a workbook, that workbook will automatically close.
These move/copy operations cannot be undone by Ctrl+Z.

Another gotcha is related to what happens to any existing named ranges, especially if they exist in both workbooks. But this is a whole different story.


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.