相关文章推荐
坏坏的海龟  ·  VBA) (Property Let ...·  1 周前    · 
机灵的草稿本  ·  grafana - do i need ...·  1 年前    · 
无聊的杨桃  ·  XmlSerializer ...·  1 年前    · 
阳光的牙膏  ·  VirtualStringTree 定位 ...·  1 年前    · 
强健的烤面包  ·  Qt ...·  1 年前    · 
爽快的小摩托  ·  如何用Python ...·  1 年前    · 

Excel 工作表太多,切换太慢?用VBA制作目录,效率快到飞起!

实际工作中,我们创建的一个Excel工作薄中通常都会包含多个工作表,查看数据时,就需要在工作来之间进行来回切换。

虽然可以采用“激活”对话框的方法进行切换,或者通过手动或HYPERLINK函数创建超链接等方法实现快速切换工作表,但是这些方法更适用于工作表较少的情形。

如果工作表数量过多,那么在切换工作表、创建超链接时仍然十分不便,也会影响工作效率。

下面教你使用Excel中的VBA程序,添加几行代码,即可实现自动为每一张工作表创建超链接,可自动将工作簿中现有的所有工作表生成与之一一匹配的“超链接”,同时也在每个工作表中自动生成“返回目录”的超链接。

并且,后期新增工作表之后,也能同步生成新的超链接。


步骤01 打开需要创建目录的Excel工作薄,选中全部工作表→第1行之上插入一行,预留A1单元格用于放置“返回目录”的超链接。


步骤02 新增一张工作表,重命名为“目录”→右击工作表标签→在弹出的快捷列表中单击选择“查看代码(V)”选项。如左下图所示→弹出VBA窗口及代码编辑文本框→在其中设置以下代码,如右下图所示→关闭窗口返回Excel窗口。



Sub mulu()

Dim ws As Worksheet, n%

For Each ws In Worksheets

If ws.Name <> "目录" Then

n = n + 1

Cells(n + 3, 4) = ws.Name

Worksheets("目录").Hyperlinks.Add Cells(n + 3, 4), "", ws.Name & "!A1"

ws.[a1].Value = "返回目录"

ws.Hyperlinks.Add ws.[a1], "", "目录!D3"

End If

Next

End Sub


步骤03 插入控件。

单击【开发工具】选项卡下【控件】组中【插入】按钮→单击下拉列表中的“按钮(窗体控件)”→绘制一个“按钮”→弹出“指定宏”对话框→单击选择“宏名(M):”为“Sheet25.mulu”→单击【确定】按钮关闭对话框,如左下图所示→将控件命名为“创建目录”→单击控件即可快速创建当前工作薄内所有工作表的超链接,如右下图所示。




创建已有工作表的目录后,下面测试切换工作表和创建新增工作表链接效果。

1.快速切换工作表

单击任意一个超链接,如“客户供应商汇总表”,即可切换至该工作表中,此时可看到A1单元格中已自动生成“返回目录”超链接,如左下图所示。

2.新增工作表后创建链接

新增一张工作表,命名为“新增工作表”→返回“目录”工作表→再次单击“创建目录”按钮,“目录”中已同步生成名为“新增工作表”的超链接,并且按照工作表标签顺序排列。如右下图所示。



最后在保存工作薄注意一个操作细节:运用VBA程序创建目录后,必须将工作薄保存为“Excel启用宏的工作薄”,才能真正保存之前设置的VBA代码以及一键创建目录的功能。在【另存为】对话框中的“保存类型(T):”下拉列表中选择“Excel启用宏的工作薄”后保存即可。如下图所示。



运用VBA程序为Excel工作薄创建目录的操作如此简便,速度如此迅捷,小伙伴们快去试试让您的工作效率飞起来!

发布于 2021-05-08 14:16

文章被以下专栏收录