Excel VBA 之 自動建立工作表目錄


Excel VBA 之 自動建立工作表目錄

現在有一個工作簿,裡面有很多張工作表,為了使用方便,我們往往需要插入一個目錄表,並加入超鏈接方便跳轉,但是如果該工作簿中的工作表經常性的變動、刪除,那麼我們手動建立目錄將會很不方便,今天就來講一下如何用VBA實現自動創建目錄並實現跳轉功能。

生成目錄的代碼如下

<code>01\tSub main()
02\t Dim sht
03\t Dim a%
04\t a = 2
05\t Sheet1.Range("A2:A65535").ClearContents
06\t For Each sht In Sheets
07\t If sht.Name <> "Sheet1" Then
08\t Sheet1.Cells(a, 1).Value = sht.Name
09\t a = a + 1
10\t End If
11\t Next
12\tEnd Sub/<code>

代碼解析

04行:目錄起始行為第2行(第一行為標題《目錄》)

05行:清除原目錄內容

06行:遍歷所有Sheet

07-10行:將不是目錄所在的sheet名添加到目錄

Excel VBA 之 自動建立工作表目錄

目錄效果

然後,我們需要實現跳轉功能,可以利用工作表的SelectionChange事件,代碼如下

<code>01\tPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
02\t Dim mR%
03\t mR = Sheet1.[A65500].End(xlUp).Row
04\t On Error Resume Next
05\t If Target.Count = 1 Then
06\t If Target.Column = 1 Then
07\t If Target.Row > 1 And Target.Row <= mR Then
08\t Sheets(Target.Value).Select
09\t End If
10\t End If
11\t End If
12\tEnd Sub/<code>

代碼解析

03行:目錄最大行數

04行:發生錯誤時,讓程序繼續執行下一句代碼

05行:選中的單元格數目為1

06行:選中的單元格在第一列

07行:選中的單元格在目錄函數範圍內

05-07行:限制事件觸發的條件

08行:跳轉至單元格所對應的工作表


跳轉效果如圖:

Excel VBA 之 自動建立工作表目錄

跳轉效果

點擊下面鏈接可以查看我的其他文章哦!


喜歡的朋友記得點贊關注哦,網友們如果在Excel中遇到問題都可以找我交流,也可以在評論區或私信告訴我你想看到的VBA辦公教程,我將在下期分享給大家,以後不定期更新Excel VBA技巧!


分享到:


相關文章: