提示:其它语言是由 Google 机器翻译的。 你可以访问 English 版本。
登录
x
or
x
x
马上登记
x

or

如何在Excel中创建工作表名称的动态列表?

如果在工作簿中有多个工作表,并且您想在工作簿的新工作表中创建所有工作表名称的动态列表,那么您将如何执行? 现在本教程介绍一些技巧,以便在Excel中快速完成此任务。

使用“定义名称”和“公式”创建工作表名称的动态列表

使用VBA代码创建工作表名称的动态列表

使用Kutools for Excel创建工作表名称的动态列表 好idea3

使用Kutools for Excel显示工作表名称的动态列表 好idea3


导航窗格 - 工作簿和工作表(查看所有打开的工作簿是列表和所有工作表
当前工作簿的列表在窗格中列出,您可以单击表格名称以切换到它。)

文档导航列表工作表
Office选项卡在Office中启用选项卡式编辑和浏览,使您的工作更轻松......
Kutools for Excel - 最佳办公生产力工具将解决您的大部分Excel问题
  • 重用任何东西: 将最常用或最复杂的公式,图表和其他任何内容添加到您的收藏夹中,并在将来快速重复使用它们。
  • 超过20文本功能: 从文本字符串中提取数字; 提取或删除部分文本; 将数字和货币转换为英语单词...
  • 合并工具:多个工作簿和表格合二为一; 合并多个单元格/行/列而不丢失数据; 合并重复行和总和...
  • 拆分工具:根据价值将数据拆分为多个表格; 一个工作簿到多个Excel,PDF或CSV文件; 一列到多列......
  • 粘贴跳过 隐藏/过滤行; 数和总和 按背景颜色; 创建邮件列表和 通过Cell的价值发送电子邮件...
  • 超级过滤器: 创建高级过滤方案并应用于任何工作表; 排序 按周,日,频率等; 筛选 通过大胆,公式,评论......
  • 超过300强大的功能; 适用于Office 2007-2019和365; 支持所有语言; 在公司轻松部署; 全功能60天免费试用。


1。 在空白工作表中选择一个单元格,在这里我选择A1,然后单击 公式 > 定义名称。 看截图:
DOC-动态worksheetname一览1

公式 再也不用担心Excel中长的公式了! Kutools for Excel's 自动文本 可以将所有公式添加到组中
作为自动文本,并解放你的大脑! 点击这里了解自动文本 点击这里获得免费试用

2。 然后在 新名字 对话框,输入 进入 名字 文本框(可以根据需要更改),然后键入此公式 = SUBSTITUTE(GET.WORKBOOK(1), “[” &GET.WORKBOOK(16) “]”, “”) 进入指向文本框。 看截图:
DOC-动态worksheetname一览2

3。 点击 OK。 转到所选单元格(A1)并键入此公式 = INDEX(表,行($ A $ 1:$ A1)) (A1是您输入此公式的单元格,“表格”是您在步骤2中定义的名称),然后将自动填充控件拖动到#REF! 出现。
DOC-动态worksheetname一览3

小技巧:如果删除或添加了工作表,则需要转到A1,然后按Enter键,然后再次自动填充句柄。
DOC-动态worksheetname一览4


如果要创建可链接到每个工作表的动态工作表名称的动态列表,则可以使用VBA代码。

1。 创建一个新的工作表并将其重命名为索引。 看截图:

DOC-动态worksheetname一览5 DOC-动态worksheetname一览6

2。 右键单击索引的表名,选择 查看代码 从上下文菜单。 看截图:
DOC-动态worksheetname一览7

3。 在弹出窗口中,将VBA代码复制并粘贴到其中。

VBA:创建工作表名称的动态列表。

Private Sub Worksheet_Activate()
	'Updateby20150305
	Dim xSheet As Worksheet
	Dim xRow As Integer
	Dim calcState As Long
	Dim scrUpdateState As Long
	Application.ScreenUpdating = False
	xRow                       = 1
	With Me
		.Columns(1).ClearContents
		.Cells(1, 1) = "INDEX"
		.Cells(1, 1).Name = "Index"
	End With
	For Each xSheet In Application.Worksheets
		If xSheet.Name <> Me.Name Then
			xRow                     = xRow + 1
			With xSheet
				.Range("A1").Name = "Start_" & xSheet.Index
				.Hyperlinks.Add anchor: = .Range("A1"), Address: = "", _
				SubAddress:             = "Index", TextToDisplay: = "Back to Index"
			End With
			Me.Hyperlinks.Add anchor: = Me.Cells(xRow, 1), Address: = "", _
			SubAddress: = "Start_" & xSheet.Index, TextToDisplay: = xSheet.Name
		End If
	Next
	Application.ScreenUpdating = True
End Sub

4。 点击 or F5 要运行VBA,现在会创建一个动态工作表名称列表。
DOC-动态worksheetname一览8

提示:

1。 当工作簿的工作表被删除或插入时,工作表名称列表将自动更改。

2。 您可以单击名称列表的工作表名称以转到工作表。

以上两种方法都不够方便,如果您对新功能感兴趣,您可以选择以下两种方法,这可能会使这项任务更容易。


如果您只想快速列出工作簿的所有工作表名称并将其链接到原始工作表,则可以使用 Kutools for Excel创建图纸名称列表.

Kutools for Excel, 与超过 120 方便的Excel功能,提高工作效率,节省工作时间。

免费安装 Kutools for Excel,请按照以下步骤操作:

1。 点击 企业服务 > 工作表 > 创建图纸名称列表。 看截图:

doc动态工作表名称17

2。 在里面 创建图纸名称列表 对话:

DOC-动态worksheetname一览10
(1)检查你需要的索引风格 工作表索引样式 部分;
(2)在输入数据的情况下命名新索引表 为工作表索引指定工作表名称 文本框;
(3)指定将要添加索引表的位置 插入图表索引 清单;
(4)如果要在单个列表中显示图纸名称,请选择“中的1”列 显示图表索引 名单。

3。 点击 Ok。 现在你可以看到列表中的表名。
DOC-动态worksheetname一览11

提示:

1。 您可以点击工作表名称以快速切换到其原始工作表。

2。 列表或工作表名称不能随插入或删除工作表而动态更改。

3。 其实,你也可以创建一个链接相关工作表的按钮列表,只需要检查 包含按钮和宏 在对话框中。 请参阅screeshshot:
doc动态工作表名单列表16

点击此处了解更多关于创建图纸名称列表的信息。


如果你有 Kutools for Excel,你也可以使用 菜单导航 实用程序在窗格中显示可链接的工作表名称

免费安装 Kutools for Excel,请按照以下步骤操作:

1。 点击 Kutools > 菜单导航。 看截图:
DOC-动态worksheetname一览12

2。 然后在活动工作表中出现一个窗格,单击 工作簿和工作表 以显示工作簿和工作表,并且您可以选择工作簿,然后其工作表将显示在 菜单导航 窗格。 查看截图:

DOC-动态worksheetname一览13 DOC-动态worksheetname一览14

提示:

当工作表被删除或添加时,您可以单击 刷新按钮Ì导航n窗格刷新工作表名称。
DOC-动态worksheetname一览15

点击这里查看更多关于导航的信息。


Kutools for Excel - 最佳办公生产力工具提高80%的生产力

  • 重用: 快速插入 复杂的公式,图表 以及你以前用过的任何东西; 加密单元格 密码; 创建邮件列表 并发送电子邮件...
  • 超级方程式酒吧 (轻松编辑多行文字和公式); 阅读布局 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不丢失数据; 分裂细胞含量; 组合重复的行/列...防止重复的细胞; 比较范围...
  • 选择复制或唯一 行; 选择空行 (所有细胞都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择......
  • 精确复制 多个单元格而不更改公式参考; 自动创建参考 多张表; 插入项目符号,复选框等等......
  • 提取文本,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级过滤器 (将过滤方案保存并应用到其他工作表); 高级排序 按月/周/日,频率等; 特殊过滤器 用粗体,斜体......
  • 结合工作簿和工作表; 根据键列合并表; 将数据拆分为多个表格; 批量转换xls,xlsx和PDF...
  • 超过300强大的功能。 支持Office / Excel 2007-2019和365。 支持所有语言。 在您的企业或组织中轻松部署。 全功能60天免费试用。
kte tab 201905

Office选项卡为Office提供选项卡式界面,使您的工作更轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,Publisher,Access,Visio和Project。
  • 在同一窗口的新选项卡中打开并创建多个文档,而不是在新窗口中。
  • 通过50%提高您的工作效率,每天为您减少数百次鼠标点击!
官方底部
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Kelly · 1 years ago
    Thanks for this helpful info. I created a dynamic list with VBA code in the Index tab. I found that it only updates when I click back to the Index tab, though. Is there a way to ensure it auto updates as soon as a new tab is created? I refer to the tab names elsewhere in the workbook and others will be using it so I'm trying to make it seamless. Thank you!
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      Sorry, I do not find that code can finish your job.
  • To post as a guest, your comment is unpublished.
    Ed Bower · 1 years ago
    Or you can simply rightClick either the left or right tab-horizontal-scroll arrow at the bottomLeft, and then click the worksheet name (from the simple vertical list) that you want to jump to.
  • To post as a guest, your comment is unpublished.
    PB · 1 years ago
    Just what I needed and worked perfectly. Thank you!
  • To post as a guest, your comment is unpublished.
    KP · 2 years ago
    Defining the name "Sheets" in the define name DOES NOT WORK. The "refers to" box will not save the formula as typed and converts it to a text string.
  • To post as a guest, your comment is unpublished.
    j4h54n84 · 2 years ago
    how can I use this code to create the list of worksheets in horizontal order instead of vertical? is it possible?
  • To post as a guest, your comment is unpublished.
    Cindy · 2 years ago
    Thank you. It is very useful. :D
  • To post as a guest, your comment is unpublished.
    Nash · 2 years ago
    How can i remove the links to each sheets and how to not include the "sheet1" and "Index" sheet?

    Private Sub Worksheet_Activate()
    'Updateby20150305
    Dim xSheet As Worksheet
    Dim xRow As Integer
    Dim calcState As Long
    Dim scrUpdateState As Long
    Application.ScreenUpdating = False
    xRow = 1
    With Me
    .Columns(1).ClearContents
    .Cells(1, 1) = "INDEX"
    .Cells(1, 1).Name = "Index"
    End With
    For Each xSheet In Application.Worksheets
    If xSheet.Name Me.Name Then
    xRow = xRow + 1
    With xSheet
    .Range("A1").Name = "Start_" & xSheet.Index
    .Hyperlinks.Add anchor: = .Range("A1"), Address: = "", _
    SubAddress: = "Index", TextToDisplay: = "Back to Index"
    End With
    Me.Hyperlinks.Add anchor: = Me.Cells(xRow, 1), Address: = "", _
    SubAddress: = "Start_" & xSheet.Index, TextToDisplay: = xSheet.Name
    End If
    Next
    Application.ScreenUpdating = True
    End Sub
  • To post as a guest, your comment is unpublished.
    Matt · 2 years ago
    How would I go about editing this code to include a checkbox to the left of the link that I could use to hide rows on a cover sheet? Also how could I insert a row on the worksheets below A1 to have the return to index link show up there?