How to add a sheet to a specific position in a workbook using VBA?

To add a sheet to a specific position in an Excel workbook using VBA, you need to use the `Sheets.Add` method with the `Before` or `After` parameter to specify the location of the new sheet. Below is a step-by-step guide with a sample VBA code:

Sub AddSheetAtSpecificPosition()
    Dim ws As Worksheet
    Dim position As Integer
    
    ' Specify the position where you want to add the new sheet
    position = 2
    
    ' Add a new sheet before the sheet in the specified position
    Set ws = ThisWorkbook.Sheets.Add(Before:=ThisWorkbook.Sheets(position))
    
    ' Optionally, you can name the new sheet
    ws.Name = "NewSheet"
End Sub
  • Open Excel and access the VBA Editor:
    • Press `ALT` + `F11` to open the VBA Editor.
  • Insert a new Module:
    • Go to `Insert` > `Module` to insert a new module where you will write your code.
  • Write the VBA code:
    • Use the following sample code to add a sheet at a specific position. In this example, a new sheet will be added before the second sheet in the workbook.
  • Run the code:
    • You can run this code by pressing `F5` while in the `AddSheetAtSpecificPosition` subroutine, or you can run it from Excel by assigning it to a button or other object.

Explanation:

  • `ThisWorkbook`: Refers to the workbook where the VBA code is being run.
  • `Sheets.Add`: This method is used to add a new sheet. We specify where to add it using `Before` or `After`.
  • `Before:=ThisWorkbook.Sheets(position)`: Places the new sheet before the sheet at the specified index (`position`).
  • `ws.Name = “NewSheet”`: Optionally renames the newly added worksheet to “NewSheet”. You can change “NewSheet” to any valid sheet name you prefer.

By modifying the `position` variable, you can control where exactly in the workbook the new sheet will be inserted. For instance, to add the sheet after the third sheet, you would use `After:=ThisWorkbook.Sheets(3)`.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project