在微软excel表里,没有提供sheet目录树的功能,通过vba代码,我们可以简便的生成目录表,在目录表点击对应sheet名即可方便的跳转到对应sheet表
使用效果如下
代码如下
使用方法:alt+F11打开vba编辑器,粘贴下面代码,运行创建目录即可
代码最后1句单引号可取消 运行后即可 在子表中 按下ctrl+j快速返回到目录表
代码如下
Sub 创建目录()
'关闭屏幕更新加快速度
Application.ScreenUpdating = False
Dim i As Integer, Sht_Count
'如果不存在“目录”则添加目录工作表
If Not IsSht("目录") Then Sheets.Add(Sheets(1)).Name = "目录"
Sht_Count = Sheets.Count '获取工作表数量
For i = 2 To Sht_Count '遍历工作表
'在“目录”工作表添加链接
Sheets("目录").Hyperlinks.Add Anchor:=Sheets("目录").Cells(i - 1, 2), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name, ScreenTip:="单击打开:" & Sheets(i).Name
Next i
'恢复屏幕更新
Application.ScreenUpdating = True
'为返回目录过程指定快捷键为【Ctrl+J】可自己选用
'Application.OnKey "^j", "返回目录"
End Sub
'声明一个函数,用于判断是否存在某个指定名称的工作表
Function IsSht(ShtName As String)
On Error Resume Next
Dim sht As Worksheet
Set sht = Sheets(ShtName)
IsSht = (Err = 0)
End Function
Sub 返回目录()
'如果有“目录”则返回“目录”工作表
If IsSht("目录") Then Sheets("目录").Select
End Sub
联系客服