为自己的Excel制作一个“目录”,拒绝盲目低效率的翻阅工作表!

Excel情报局
Excel职场联盟
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN

当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 = xlCenterEnd SubPrivate 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).SelectEnd SubSub ShowSheet()   Dim sh As Worksheet   For Each sh In Sheets       sh.Visible = -1   NextEnd Sub
回到Excel主界面后,我们只要点击一下除“目录”工作表名称标签以外的的任意一个工作表名称标签,比如本例中,小编点击了“单价表”工作表名称标签,我们发现在“目录”表中,所有的工作表名称就自动放置到了A列,形成了一个目录列表。
最后我们就实现了当选中“目录”表中对应A列的表名就会跳转到对应的表并自动隐藏其他的表。Excel目录至此就制做好了。
这种制作目录方法的一大特色就是当选中“目录”表中对应A列的表名就会跳转到对应的表并自动隐藏其他的表,但是我们如何将隐藏的所有的表格显示出来呢?
如果直接右击工作表,点击“取消隐藏”按钮的话,我们发现“取消隐藏”按钮是灰色不可用状态,说明这不是普通的隐藏工作表,而是一种深度的隐藏工作表。
想要解决这个问题,我们只需要再次进入VBA编辑窗口,点击运行刚才那段代码,这时候,所有隐藏的工作表就都显示出来了。
这种制作Excel目录的方法还有一个特别方便的地方:
就是当我们新增了工作表之后,我们无需再重新制作目录,目录列表会实现自动更新,非常的方便,如下图所示:
阅读完文章之后,希望小伙伴们在文章底部帮助小编[点赞]点亮[在看]并分享转发到[朋友圈],坚持持续分享的路上很辛苦,需要有你们的鼓励与支持!您也可以通过在文章底部[留言]的方式来反馈实际办公中遇到的Excel问题场景。
(0)

相关推荐