跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

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

Author Xiaoyang Last modified

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

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

使用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函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


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

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠