当Excel中的工作表数量很多时,有一个带链接的目录真是太方便了,如下图所示,当我们选中“目录”表中对应A列的表名就会跳转到对应的表并自动隐藏其他的表。
这样的Excel工作表目录该如何制作呢?下面小编就带大家了解一下制作原理及步骤吧!
首先我们需要新建一个空白的工作表,重命名为“目录”,作为我们制作目录的存放的位置。
然后,右击“目录”工作表名称标签,点击“查看代码”命令,自动弹出VBA代码录入编辑窗口,将下面的一段VBA代码复制粘贴到窗口中。最后关闭VBA窗口即可。如下图所示:
VBA代码如下:
Private Sub Worksheet_Activate()
On Error Resume Next
Sheets("目录").Range("A1") = "目录"
k = 1
For Each sh In Sheets
If sh.Name <> "目录" Then
k = k + 1
Sheets("目录").Cells(k, 1) = sh.Name
End If
Next
Sheets("目录").Range("A:A").EntireColumn.AutoFit
Sheets("目录").Range("A:A").EntireColumn.HorizontalAlignment = xlCenter
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sht As Worksheet
On Error Resume Next
If Target.Address = "$D$1" Then
Call ShowSheet
Exit Sub
End If
If Target.Row < 2 Or Target.Column > 1 Then Exit Sub
For Each sht In Worksheets
If sht.Name <> "目录" Then sht.Visible = xlSheetVeryHidden
Next
Sheets(Target.Value).Visible = xlSheetVisible
Sheets(Target.Value).Select
End Sub
Sub ShowSheet()
Dim sh As Worksheet
For Each sh In Sheets
sh.Visible = -1
Next
End Sub
回到Excel主界面后,我们只要点击一下除“目录”工作表名称标签以外的的任意一个工作表名称标签,比如本例中,小编点击了“单价表”工作表名称标签,我们发现在“目录”表中,所有的工作表名称就自动放置到了A列,形成了一个目录列表。
最后我们就实现了当选中“目录”表中对应A列的表名就会跳转到对应的表并自动隐藏其他的表。Excel目录至此就制做好了。
这种制作目录方法的一大特色就是当选中“目录”表中对应A列的表名就会跳转到对应的表并自动隐藏其他的表,但是我们如何将隐藏的所有的表格显示出来呢?
如果直接右击工作表,点击“取消隐藏”按钮的话,我们发现“取消隐藏”按钮是灰色不可用状态,说明这不是普通的隐藏工作表,而是一种深度的隐藏工作表。
想要解决这个问题,我们只需要再次进入VBA编辑窗口,点击运行刚才那段代码,这时候,所有隐藏的工作表就都显示出来了。
这种制作Excel目录的方法还有一个特别方便的地方:
就是当我们新增了工作表之后,我们无需再重新制作目录,目录列表会实现自动更新,非常的方便,如下图所示: