How to Create a New Worksheet Using VBA (3-Minute Tutorial) (Excel)

Written by Kasper Langmann

Visual Basic for Applications (VBA) is a powerful tool that allows Excel users to automate tasks and enhance their worksheets’ functionality. One of the many tasks you can accomplish with VBA is creating a new worksheet. This tutorial will guide you through the process in just three minutes.

Understanding VBA

Before diving into the tutorial, it’s essential to understand what VBA is and how it works. VBA is a programming language developed by Microsoft that is used within their Office applications. It allows users to automate tasks and perform complex functions that would be time-consuming or impossible to do manually.

Excel, in particular, benefits greatly from VBA. With it, you can automate data entry, generate reports, create new worksheets, and much more. The possibilities are virtually endless.

The Basics of VBA

VBA is a relatively easy language to learn, especially if you’re already familiar with Excel. It’s designed to be user-friendly and accessible to non-programmers. However, like any language, it requires practice and patience to master.

One of the key aspects of VBA is the use of macros. A macro is a series of commands that can be executed with a single click. These macros can be written in VBA and then assigned to buttons, shapes, or other objects within your Excel workbook.

Working with VBA in Excel

To work with VBA in Excel, you’ll need to access the VBA editor. This can be done by pressing Alt + F11 on your keyboard. From there, you can write and edit VBA code, create new modules, and debug your programs.

It’s important to note that VBA code is stored within the workbook in which it was created. This means that if you want to use your VBA code in another workbook, you’ll need to copy it over or save your workbook as a macro-enabled workbook.

Creating a New Worksheet with VBA

Now that you have a basic understanding of VBA and how it works in Excel, let’s move on to the main topic of this tutorial: creating a new worksheet using VBA. This is a relatively simple task, but it’s a great way to start learning VBA.

Creating a new worksheet with VBA involves writing a short piece of code that tells Excel to add a new worksheet to the current workbook. The code for this is as follows:

Sub AddWorksheet()
    Sheets.Add After:=Sheets(Sheets.Count)
End Sub

This code creates a new subroutine called AddWorksheet. Within this subroutine, the Sheets.Add method is used to add a new worksheet to the workbook. The After parameter tells Excel where to place the new worksheet. In this case, it’s placed after the last sheet in the workbook.

Running Your VBA Code

Once you’ve written your VBA code, you’ll need to run it to create your new worksheet. To do this, simply press F5 while in the VBA editor. Alternatively, you can click on the Run button in the toolbar.

If your code is written correctly, a new worksheet should appear at the end of your workbook. If not, you’ll need to debug your code to find and fix any errors.

Customizing Your New Worksheet

While the above code will create a new worksheet, it won’t do much else. If you want to customize your new worksheet, such as giving it a specific name or placing it in a specific location, you’ll need to modify your code.

For example, to name your new worksheet, you can use the following code:

Sub AddWorksheet()
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "My New Worksheet"
End Sub

This code does the same thing as the previous code, but it also renames the new worksheet to “My New Worksheet”.


Creating a new worksheet with VBA is a simple but powerful task. It’s a great way to start learning VBA and automating your Excel tasks. With just a few lines of code, you can create a new worksheet, name it, and place it where you want in your workbook.

Remember, VBA is a powerful tool, but it requires practice and patience to master. Don’t be discouraged if you don’t get it right the first time. Keep practicing, and you’ll be writing your own VBA code in no time.