How to Make A Cell Value as Worksheet Tab Name in Excel

,

Usually we often define worksheet tab name depending on the contents of this worksheet like Summary, Product List etc. But in some cases, we want to define the worksheet name equals to the text in specified cell, for example we want to the contents in A1 cell is also displayed as the worksheet tab name, how can we do? This article will help you solve this problem by edit VBA code.

Make Worksheet Tab Name Equals to Cell Value in Excel


In a new excel worksheet, the default tab name is Sheet1. We can rename it by directly type a new name to replace it. We can also define tab name as same as the value in cell A1 (or any other cell you like) by VBA. See details below.

Step 1: Right click on Sheet1 to load Sheet management menu. Select View Code, Microsoft Visual Basic for Applications window pops up.

Or you can enter Microsoft Visual Basic for Applications window via Developer->Visual Basic.

Make A Cell Value as Worksheet Tab Name 1

Step 2: In Microsoft Visual Basic for Applications window, click on Sheet1, enter below code:

Private Sub Worksheet_Change(ByVal Target As Range)

        ActiveSheet.Name = ActiveSheet.Range("A1")

End Sub

Step 3: Save the codes. And quit Microsoft Visual Basic for Applications.

Make A Cell Value as Worksheet Tab Name 2

Step 4: In current sheet1, in cell A1, enter the tab name for example Product List, then click Enter.

Make A Cell Value as Worksheet Tab Name 3

Verify that Sheet1 is changed to Product List which is saved in cell A1.

Notes:

This code is only applied for worksheet1. So, for other worksheets it doesn’t work.

If enter a value with invalid characters like /, error message will pop up. See screenshot below:

Make A Cell Value as Worksheet Tab Name 4

If A1 is blank or clear A1, below error message will pop up.

Make A Cell Value as Worksheet Tab Name 5

So, if we want avoid the case of blank A1, we can edit code with more criteria:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A1")) Is Nothing Then

        ActiveSheet.Name = ActiveSheet.Range("A1")

    End If

End Sub

You can change A1 cell to other cell by replace A1 in above code.