如何为所有工作表创建目录并实现自动更新?
假设您有一个包含数百个工作表的工作簿,在众多工作表中快速定位到特定工作表,对大多数人来说都是一件令人头疼的事。此时,为这些工作表创建一个目录,就能让您轻松、高效地跳转至目标工作表。本教程将为您详细介绍如何为所有工作表创建目录,并实现目录在插入、删除或重命名工作表时自动更新。
使用 Kutools for Excel 为所有工作表创建目录并自动更新
使用公式为所有工作表创建目录并自动更新
在 Excel 中,您可以通过定义一个单元格名称并在公式中引用该名称来创建目录,请按以下步骤操作:
1. 在所有工作表前插入一个新工作表,并根据需要将其重命名为目录工作表。
2. 接着,单击“公式”>“定义名称”,参见下图:

3. 在“新建名称”对话框中,“名称”框内输入“Sheetlist”(您也可替换为自定义名称),随后在“引用位置”文本框中输入以下公式。
=GET.WORKBOOK(1)&T(NOW()) 
4. 然后,单击“确定”按钮即可关闭对话框。
5. 现在,请切换至用于创建目录的新工作表,并在空白单元格中输入以下公式:
=IFERROR(INDEX(MID(Sheetlist,FIND("]",Sheetlist)+1,255),ROWS($A$2:A2)),"") 6. 然后向下拖动填充柄,直至出现空白单元格为止,此时当前工作簿中的所有工作表名称(包括隐藏工作表)将如以下截图所示列出:

7. 接下来,请使用以下公式为目录内容创建超链接:
=HYPERLINK("#'"&A2&"'!A1","Go To Sheet") 
8. 现在,只需单击超链接文本,即可立即跳转至对应工作表。当您插入新工作表、删除工作表或更改工作表名称时,目录内容将自动同步更新。
- 1. 使用此方法,所有隐藏的工作表也会一并显示在目录中。
- 2. 请将文件另存为“Excel 启用宏的工作簿”格式,以确保下次打开时公式能正常运行。
使用 Kutools for Excel 为所有工作表创建目录并自动更新
如果您已安装“Kutools for Excel”,其“导航窗格”功能可将所有工作表名称垂直列于左侧窗格,助您快速、轻松地跳转至指定工作表。
安装 Kutools for Excel 后,请按以下操作:
1. 单击“Kutools”>“导航”,参见下图:

2. 在展开的“导航”窗格中,单击“工作簿和表”图标,上方列表框将显示所有已打开的工作簿,下方列表框则呈现各工作簿中的所有可见工作表,参见截图:

3. 现在,只需单击左侧窗格中的工作表名称,即可快速跳转至对应工作表。当您删除、插入或重命名工作表时,窗格中的列表将实时动态更新。

使用 VBA 代码为所有工作表创建目录并自动更新
有时,您可能不希望在目录中显示隐藏的工作表。以下 VBA 代码可助您轻松解决此问题。
1. 在所有工作表前插入一个新工作表,并根据需要将其重命名为用于创建目录的名称。随后,右键单击该工作表标签,从上下文菜单中选择“查看代码”,参见截图:

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

3. 随后,按下“F5”键运行此代码,目录将立即在新工作表中生成完毕,且所有隐藏工作表均不会出现在目录中,详见截图:

4. 从现在起,删除、插入或重命名工作表时,目录内容将自动动态更新。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱