跳至主要内容

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

Author: Xiaoyang Last Modified: 2025-05-08

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

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

使用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文件保存为“启用宏的工作簿”格式,以便下次打开工作簿时代码能够成功运行。

最佳办公效率工具

🤖 Kutools AI 助手:基于智能执行生成代码创建自定义公式分析数据并生成图表调用 Kutools 函数等功能,彻底改变数据分析方式…
热门功能查找、高亮或标记重复项 | 删除空行 | 合并不丢失数据的列或单元格 | 四舍五入 ...
高级 LOOKUP多条件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 ....
高级下拉列表快速创建下拉列表 | 从属下拉列表 | 多选下拉列表 ....
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域和列 ...
精选功能网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...)...
排名前 15 的工具集12 种文本 工具添加文本删除特定字符等) | 50 多 种图表 类型甘特图等) | 40 多种实用 公式基于生日计算年龄等) | 19 种插入 工具插入二维码根据路径插入图片等) | 12 种转换 工具小写金额转大写汇率转换等) | 7 种合并与分割 工具高级合并行分割单元格等) | 还有更多...

使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...


Office Tab 将标签式界面引入 Office,让您的工作更加轻松

  • 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读
  • 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
  • 将您的生产力提升 50%,每天为您减少数百次鼠标点击!