How to create a dynamic list of worksheet names in Excel?
If you have multiple sheets in a workbook, and you want to create a dynamic list of all sheet names in a new sheet in the workbook, how can you do? Now this tutorial introduces some tricks to quickly complete this mission in Excel.
Create a dynamic list of worksheet names with Define Name and Formula
Create a dynamic list of worksheet names with VBA code
Create a dynamic list of worksheet names with Kutools for Excel
Display a dynamic list of worksheet names with Kutools for Excel
Create a dynamic list of worksheet names with Define Name and Formula
1. Select a cell in a blank sheet, here I select A1, and then click Formulas > Define Name. see screenshot:
2. Then in the New Name dialog, type Sheets in to the Name textbox (you can change as you need), and type this formula =SUBSTITUTE(GET.WORKBOOK(1),"["&GET.WORKBOOK(16)&"]","") into the Refers to textbox. See screenshot:
3. Click OK. The go to the selected cell (A1) and type this formula =INDEX(Sheets,ROWS($A$1:$A1)) (A1 is the cell you type this formula, "Sheets" is the name you defined in Step 2) into it, then drag the autofill handle down until #REF! appears.
Tip: If there are worksheets removed or added, you need to go to A1and press Enter key then rag the autofill handle again.
Create a dynamic list of worksheet names with VBA code
If you want to create a dynamic list of worksheet names which can link to each sheet, you can use VBA code.
1. Create a new worksheet and rename it as Index. See screenshot:
2. Right click at the sheet name of Index, select View Code from context menu. See screenshot:
3. In the popping window, copy and paste below VBA code into it.
VBA: Create dynamic list of worksheet names.
Private Sub Worksheet_Activate()
'Updateby20150305
Dim xSheet As Worksheet
Dim xRow As Integer
Dim calcState As Long
Dim scrUpdateState As Long
Application.ScreenUpdating = False
xRow = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDEX"
.Cells(1, 1).Name = "Index"
End With
For Each xSheet In Application.Worksheets
If xSheet.Name <> Me.Name Then
xRow = xRow + 1
With xSheet
.Range("A1").Name = "Start_" & xSheet.Index
.Hyperlinks.Add anchor: = .Range("A1"), Address: = "", _
SubAddress: = "Index", TextToDisplay: = "Back to Index"
End With
Me.Hyperlinks.Add anchor: = Me.Cells(xRow, 1), Address: = "", _
SubAddress: = "Start_" & xSheet.Index, TextToDisplay: = xSheet.Name
End If
Next
Application.ScreenUpdating = True
End Sub
4. Click Run or F5 to run the VBA, now a dynamic list of worksheet names is created.
Tip:
1. When the worksheet of the workbook is deleted or inserted, the worksheet names list will auto change.
2. You can click at the sheet name of the names list to go to the sheet.
With above two methods are not convinient enough, if you are interested in new utility, You can go next two methods which may make this task more easier.
Create a dynamic list of worksheet names with Kutools for Excel
If you only want to quickly list all worksheet names of the workbook and link them to the original sheets, you can use Kutools for Excel’s Create List of Sheet Names.
Kutools for Excel, with more than 300 handy functions, makes your jobs more easier. | ||
After free installing Kutools for Excel, please do as below:
1. Click Kutools Plus > Worksheet > Create List of Sheet Names. See screenshot:
2. In the Create List of Sheet Names dialog:

(2) Name the new index sheet with typing the data into Specify sheet name for Sheet Index text box;
(3) Specify the location you will place the added index sheet in in the Insert the Sheet Index in list;
(4) If you want to display the sheet names in a single list, select 1 column in Displaying Sheet Index into list.
3. Click Ok. Now you can see the sheet names are listed.
Tips:
1. You can click at the sheet name to quickly shift to its original sheet.
2. The list or sheet names cannot dynamically change with the sheets inserting or deleting.
3. Actually, you also can create a list of button to link the relative sheet, just need to check Contains Buttons and Macros in the dialog. see screeshshot:
Click here to know more about Create List of Sheet Names.
Create Clickable List of Sheet Names
Display a dynamic list of worksheet names with Kutools for Excel
If you With Kutools for Excel, you also can use the Navigation utility to display the linkable worksheet names in a pane
After free installing Kutools for Excel, please do as below:
1. Click Kutools > Navigation. Click Workbook & Sheet to show the workbook and worksheet, and you can select a workbook, then its worksheets will display in the Navigation pane. See screenshot:
Tip:
When there are worksheets deleted or added, you can click the refresh button in the Navigation pane to refresh the worksheet names.
Click here for more information about Navigation.
Navigation Pane -- List Sheets
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!













