如何为所有工作表创建目录并自动更新?
假设您有一个包含数百个工作表的工作簿,在多个工作表中导航到特定的工作表可能会让我们大多数人头疼。在这种情况下,为这些工作表创建一个目录可以帮助您快速轻松地跳转到某个工作表。本教程将讨论如何为所有工作表创建目录,并在插入、删除或更改工作表名称时自动更新目录。
使用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. 您应将文件保存为“启用宏的工作簿”格式,这样,下次打开此文件时,公式可以正常工作。
使用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 函数等功能,彻底改变数据分析方式… |
热门功能:查找、高亮或标记重复项 | 删除空行 | 合并不丢失数据的列或单元格 | 四舍五入 ... | |
高级 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%,每天为您减少数百次鼠标点击!