Programmatically delete worksheets from workbooks

You can delete any worksheet in a workbook. To delete a worksheet, use the worksheet host item or access the worksheet by using the sheets collection of the workbook.

Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Excel. For more information, see Features available by Office application and project type.

Use the worksheet host item

If the worksheet was added at design-time in a document-level customization, use the Delete method to delete a specified worksheet. The following code deletes a worksheet from a workbook by referencing the worksheet host item directly.

Important

This code runs only in projects that you create by using any of the following project templates:

To delete a worksheet by using a worksheet host item

  1. Call the Delete method of Sheet1.

    Globals.Sheet1.Delete();
    

Use the Sheets collection of the Excel workbook

Access worksheets through the Microsoft Office Excel Sheets collection in the following cases:

  • You want to delete a worksheet in a VSTO Add-in.

  • The worksheet that you want to delete was created at run time in a document-level customization.

    The following code deletes a worksheet from a workbook by referencing the sheet through the index number of the Sheets collection. This code assumes that a new worksheet was created programmatically.

Important

If you want to perform this task in any other type of project, you must add a reference to the Microsoft.Office.Interop.Excel assembly, and then you must use classes from that assembly to open a workbook and delete a worksheet. For more information, see How to: Target Office applications through primary interop assemblies and Excel 2010 primary interop assembly reference.

To delete a worksheet by using the Sheets collection of the Excel workbook

  1. Call the Delete method of the Sheets collection.

    ((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[4]).Delete();