跳至主要内容

如何为所有工作表创建目录并自动更新?

Author: Xiaoyang Last Modified: 2025-07-31

假设您有一个包含数百个工作表的工作簿,在多个工作表中导航到特定的工作表可能会让我们大多数人头疼。在这种情况下,为这些工作表创建一个目录可以帮助您快速轻松地跳转到某个工作表。本教程将讨论如何为所有工作表创建目录,并在插入、删除或更改工作表名称时自动更新目录。

使用公式为所有工作表创建目录并自动更新

使用Kutools for Excel为所有工作表创建目录并自动更新

使用VBA代码为所有工作表创建目录并自动更新


使用公式为所有工作表创建目录并自动更新

在Excel中,您可以通过定义单元格名称并在公式中引用该名称来创建目录,请按照以下步骤操作:

1. 在所有工作表之前插入一个新工作表以创建目录,并根据需要重命名它。

2. 然后,点击“公式”>“定义名称”,请参见截图:

click Define Name under Formula tab

3. 在“新建名称”对话框中,指定一个名称“Sheetlist”到“名称”框中,您可以将其更改为自己的名称,然后在“引用位置”文本框中输入以下公式。

=GET.WORKBOOK(1)&T(NOW())

type a name and formula into the dialog box

4. 然后,点击“确定”按钮关闭对话框。

5. 现在,请转到要创建目录的新工作表,然后在空白单元格中输入以下公式:

=IFERROR(INDEX(MID(Sheetlist,FIND("]",Sheetlist)+1,255),ROWS($A$2:A2)),"")
注意:在上述公式中,“Sheetlist”是您在第2步中创建的单元格名称。

6. 然后向下拖动填充柄直到显示空白单元格,当前工作簿中的所有工作表名称(包括隐藏的工作表)都已列出,如下图所示:

enter a formula and drag to display all sheet names

7. 然后,您应该为目录内容创建超链接,请使用以下公式:

=HYPERLINK("#'"&A2&"'!A1","Go To Sheet")
注意:在上述公式中,“A2”是包含工作表名称的单元格,“A1”是您希望在该工作表中跳转到的单元格。例如,如果您点击超链接文本,它将定位到该工作表的单元格A1。

apply a formula to create hyperlinks for each sheet name

8. 现在,当点击超链接文本时,它将立即跳转到该工作表。并且如果您插入新工作表、删除工作表或更改工作表名称,目录内容将自动更新。

注意事项:
  • 1. 使用此方法,所有隐藏的工作表也会显示在目录内容中。
  • 2. 您应将文件保存为“启用宏的工作簿”格式,这样,下次打开此文件时,公式可以正常工作。

使用Kutools for Excel为所有工作表创建目录并自动更新

如果您安装了“Kutools for Excel”,其“导航窗格”可以帮助您将所有工作表名称垂直列在左侧窗格中,并快速轻松地导航到特定工作表。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

安装Kutools for Excel后,请按以下步骤操作:

1. 点击“Kutools”>“导航”,请参见截图:

Click Kutools > Navigation

2. 在展开的“导航”窗格中,点击“工作簿和工作表”图标,所有打开的工作簿都会列在顶部列表框中,而工作簿内的所有可见工作表则会显示在底部列表框中,请参见截图:

 click Workbook & Sheet icon, all opened workbooks and all visible sheets are displayed in the pane

3. 现在,您只需点击左窗格中的工作表名称即可跳转到该工作表。当您删除、插入或重命名工作表时,窗格中的工作表列表将动态更新。

提示:默认情况下,隐藏的工作表不会显示在导航窗格中,如果您想显示隐藏的工作表,只需点击“按下按钮将显示隐藏的工作表。弹起时再次隐藏它们。”图标,再次点击该图标即可立即隐藏工作表。

 click the Toggle to unhide / hide all hidden worksheet(s) icon to display hidden sheets


使用VBA代码为所有工作表创建目录并自动更新

有时,您不需要在目录内容中显示隐藏的工作表。为了解决这个问题,以下VBA代码可以帮到您。

1. 在所有工作表之前插入一个新工作表以创建目录,并根据需要重命名它。然后,右键单击工作表标签,并从上下文菜单中选择“查看代码”,请参见截图:

right click the sheet tab, and choose View Code

2. 在打开的“Microsoft Visual Basic for Applications”窗口中,复制并将以下代码粘贴到工作表代码窗口中:

VBA代码:为所有工作表创建目录并自动更新

Private Sub Worksheet_Activate()
'Updateby ExtendOffice
Dim xWsh As Worksheet
Dim xWshs As Worksheets
Dim xShowHinddenWorkSheet As Boolean
Dim xI As Long
Dim xRg As Range
Dim xStrTitle, xStrTCHeader, xStrWShName As String
xShowHinddenWorkSheet = False 'Change this to True to display the hidden sheets as you need
xStrTitle = "A1"
xStrTCHeader = "A3"
On Error Resume Next
Application.ScreenUpdating = False
Me.Cells.Clear
Me.Range(xStrTitle).Font.Bold = True
Me.Range(xStrTitle).Font.Size = Me.Range(xStrTitle).Font.Size + 2
Me.Range(xStrTitle).Value = "Table of Contents"
Me.Range(xStrTCHeader).Value = "No."
Me.Range(xStrTCHeader).Offset(0, 1).Value = "Sheet Name"
Me.Range(xStrTCHeader).Resize(1, 2).Font.Bold = True
xStrWShName = Me.Name
xI = 1
For Each xWsh In Application.ActiveWorkbook.Worksheets
    If xWsh.Name <> xStrWShName Then
        If (xWsh.Visible = xlSheetVisible) Or xShowHinddenWorkSheet Then
            Me.Hyperlinks.Add Anchor:=Me.Range(xStrTCHeader).Offset(xI, 1), Address:="", SubAddress:="'" & xWsh.Name & "'!A1", TextToDisplay:=xWsh.Name
            Me.Range(xStrTCHeader).Offset(xI).Value = xI
            xI = xI + 1
        End If
    End If
Next
Application.ScreenUpdating = True
End Sub

copy and paste the code into the module

3. 然后,按“F5”键运行此代码,目录内容将在新工作表中立即创建,所有隐藏的工作表将不会显示在目录内容中,请参见截图:

run code to create a table contents

4. 从现在开始,当删除、插入或重命名工作表时,目录内容将动态更新。

注意:您还应将Excel文件保存为“启用宏的工作簿”格式,以便下次打开工作簿时代码能够成功运行。

最佳 Office 办公效率工具

🤖 Kutools AI 助手:基于智能执行,彻底革新数据分析 生成代码创建自定义公式分析数据并生成图表调用 Kutools Functions
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)...
高级 LOOKUP多条件查找 (VLookup)多值查找 (VLookup)多表查找 (VLookup Across Multiple Sheets)模糊查找 (Fuzzy Lookup)...
高级下拉列表快速创建下拉列表依赖型下拉列表多选下拉列表...
列管理器添加指定数量的列移动列切换隐藏列的可见状态比较区域及列...
特色功能网格聚焦设计视图增强编辑栏工作簿 & 工作表管理器资源库(自动文本)|日期提取合并数据加密/解密单元格按列表发送电子邮件超级筛选特殊筛选(筛选粗体/倾斜/删除线等)...
热门15 大工具集12 款文本工具添加文本删除特定字符等)50+ 种图表 类型甘特图等)40+ 实用公式基于生日计算年龄等)19 款插入工具插入二维码按路径插入图片等)12 种转换工具小写金额转大写汇率转换等)7 款合并与分割工具高级合并行分割单元格等)...更多精彩等你发现
使用 Kutools,支持您的首选语言——包括英语、西班牙语、德语、法语、中文及40 多种其他语言!

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


Office Tab 为 Office 带来标签式界面,让你的工作更加轻松

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!