在微軟excel表里,沒有提供sheet目錄樹的功能,通過vba代碼,我們可以簡便的生成目錄表,在目錄表點(diǎn)擊對應(yīng)sheet名即可方便的跳轉(zhuǎn)到對應(yīng)sheet表
使用效果如下
代碼如下
使用方法:alt+F11打開vba編輯器,粘貼下面代碼,運(yùn)行創(chuàng)建目錄即可
代碼最后1句單引號可取消 運(yùn)行后即可 在子表中 按下ctrl+j快速返回到目錄表
代碼如下
Sub 創(chuàng)建目錄()
'關(guān)閉屏幕更新加快速度
Application.ScreenUpdating = False
Dim i As Integer, Sht_Count
'如果不存在“目錄”則添加目錄工作表
If Not IsSht("目錄") Then Sheets.Add(Sheets(1)).Name = "目錄"
Sht_Count = Sheets.Count '獲取工作表數(shù)量
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
'恢復(fù)屏幕更新
Application.ScreenUpdating = True
'為返回目錄過程指定快捷鍵為【Ctrl+J】可自己選用
'Application.OnKey "^j", "返回目錄"
End Sub
'聲明一個(gè)函數(shù),用于判斷是否存在某個(gè)指定名稱的工作表
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
聯(lián)系客服