EXCEL中如何自己动手制作一个全自动管理的目录
今天来谈谈目录制作,其实,往期谈了不少,但是实战过程中,我更多的是写成自动管理的,因为普通的方式太麻烦
进入正题:直接开始写代码
进入VBE的方法有很多,这里使用快捷键:ALT+F11,进入VBE
更多方法参考:番外篇-EXCEL如何使用宏(VBA)
双击 目录 对应的 Sheet1
![](http://n4.ikafan.com/assetsj/blank.gif)
效果演示,新增删除表名,点击目录后自动更新
新增星期日,激活目录表法,发现同步更新
大家可以自行删除测试,完全OK
![](http://n4.ikafan.com/assetsj/blank.gif)
生动生成目录代码截图:
![](http://n4.ikafan.com/assetsj/blank.gif)
源码:
'激活工作表事件
'激活工作表,写入除目录外所有表名
'作者:EXCELl办公实战小易
'------------------------------------------
Private Sub Worksheet_Activate()
Cells.Clear '清空全部内容
[A1:B1] = [{"序号","表名"}] '表头
Dim i As Long, n As Long: n = 1
For i = 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name <> "目录" Then
n = n + 1
Cells(n, 1) = n - 1
Cells(n, 2) = Sheets(i).Name
End If
Next
效果图
![](http://n4.ikafan.com/assetsj/blank.gif)
自动跳转代码截图
![](http://n4.ikafan.com/assetsj/blank.gif)
'双击表名单元格,跳转到对应工作表
'作者;EXCEL办公实战-小易
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.CountLarge > 1 Then End '选择多个单元格无效
'第二行开始且是第二列开始生效
'on error resume next
If Target.Row > 1 And Target.Column = 2 Then
Sheets(Target.Value).Activate
End If
End Sub
有老铁问我,那怎么高效返回目录,送一招
这里我们利用的是定义名称,要点选择目录中的任意单元格
输入 返回目录,ctrl+enter录入
在任何表中,选择返回目录,即可快速跳转到目录
![](http://n4.ikafan.com/assetsj/blank.gif)
关注小编,下次精彩不明迷路
赞 (0)