如何為所有工作表建立目錄並實現自動更新?
假設您有一個包含數百個工作表的活頁簿,在眾多工作表中快速找到特定工作表,對多數人來說可能相當頭痛。此時,為這些工作表建立一份目錄,就能讓您輕鬆又迅速地跳轉至目標工作表。本教學將說明如何為所有工作表建立目錄,並在插入、刪除或變更工作表名稱時自動更新該目錄。
使用 Kutools for Excel 為所有工作表建立目錄並自動更新
使用公式為所有工作表建立目錄並自動更新
在 Excel 中,您可以透過定義一個儲存格名稱,並在公式中參照該名稱來建立目錄,請依照下列步驟操作:
1. 在所有工作表前方插入一個新工作表(即您要用來建立目錄的位置),並依需求重新命名。
2. 接著,請點選「公式」>「定義名稱」,詳情請參閱螢幕截圖:

3. 在「新增名稱」對話方塊中,於「名稱」欄位輸入「Sheetlist」(您可依需求自行修改),並在「參照位置」文字方塊中輸入下列公式。
=GET.WORKBOOK(1)&T(NOW()) 
4. 接著,點擊「確定」按鈕即可關閉對話方塊。
5. 現在,請前往您要建立目錄的新工作表,在空白儲存格中輸入下列公式:
=IFERROR(INDEX(MID(Sheetlist,FIND("]",Sheetlist)+1,255),ROWS($A$2:A2)),"") 6. 接著,向下拖曳填滿控點至儲存格,直到出現空白儲存格為止,此時目前工作簿的所有工作表名稱(包含隱藏的工作表)便會如以下螢幕截圖所示列出:

7. 接著,請使用下列公式為目錄內容建立超連結:
=HYPERLINK("#'"&A2&"'!A1","Go To Sheet") 
8. 現在,只需點擊超連結文字,即可立即跳轉至對應的工作表。當您在插入新工作表、刪除工作表或變更工作表名稱時,目錄內容也會自動同步更新。
- 1. 使用此方法,所有隱藏的工作表也會顯示於目錄中。
- 2. 請務必將檔案儲存為「Excel 啟用巨集活頁簿」格式,以確保下次開啟時公式能正常運作。
使用 Kutools for Excel 為所有工作表建立目錄並自動更新
若您已安裝「Kutools for Excel」,其「導航」功能可將所有工作表名稱垂直列於左側窗格,助您快速輕鬆地切換至指定工作表。
安裝 Kutools for Excel 後,請依照下列步驟操作:
1. 點選「Kutools」>「導航」,請參閱下方螢幕截圖:

2. 在展開的「導航」窗格中,點選「工作簿和表」圖示,所有已開啟的活頁簿將顯示於上方清單方塊,而各活頁簿內的所有可見工作表則會顯示於下方清單方塊,請參閱螢幕截圖:

3. 現在,只需點擊左側窗格中的工作表名稱,即可立即切換至該工作表。當您在窗格中刪除、插入或重新命名工作表時,工作表清單也會即時動態更新。

使用 VBA 程式碼為所有工作表建立目錄並自動更新
有時您可能不希望在目錄中顯示隱藏的工作表。針對此需求,以下 VBA 程式碼可協助您輕鬆達成目標。
1. 在所有工作表前方插入一個新工作表(即您要建立目錄的位置),並依需求重新命名。接著,以滑鼠右鍵點擊該工作表標籤,再從快捷功能表中選擇「檢視程式碼」,請參閱以下螢幕截圖:

2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,請將下列程式碼複製並貼上至工作表程式碼視窗:
VBA 程式碼:為所有工作表建立目錄並自動更新
Private Sub Worksheet_Activate()
'Updateby ExtendOffice
Dim xWsh As Worksheet
Dim xWshs As Worksheets
Dim xShowHinddenWorkSheet As Boolean
Dim xI As Long
Dim xRg As Range
Dim xStrTitle, xStrTCHeader, xStrWShName As String
xShowHinddenWorkSheet = False 'Change this to True to display the hidden sheets as you need
xStrTitle = "A1"
xStrTCHeader = "A3"
On Error Resume Next
Application.ScreenUpdating = False
Me.Cells.Clear
Me.Range(xStrTitle).Font.Bold = True
Me.Range(xStrTitle).Font.Size = Me.Range(xStrTitle).Font.Size + 2
Me.Range(xStrTitle).Value = "Table of Contents"
Me.Range(xStrTCHeader).Value = "No."
Me.Range(xStrTCHeader).Offset(0, 1).Value = "Sheet Name"
Me.Range(xStrTCHeader).Resize(1, 2).Font.Bold = True
xStrWShName = Me.Name
xI = 1
For Each xWsh In Application.ActiveWorkbook.Worksheets
If xWsh.Name <> xStrWShName Then
If (xWsh.Visible = xlSheetVisible) Or xShowHinddenWorkSheet Then
Me.Hyperlinks.Add Anchor:=Me.Range(xStrTCHeader).Offset(xI, 1), Address:="", SubAddress:="'" & xWsh.Name & "'!A1", TextToDisplay:=xWsh.Name
Me.Range(xStrTCHeader).Offset(xI).Value = xI
xI = xI + 1
End If
End If
Next
Application.ScreenUpdating = True
End Sub

3. 接著,按下「F5」鍵執行此程式碼,目錄內容將立即建立於新工作表中,且所有隱藏的工作表皆不會出現在目錄裡,請參閱螢幕截圖:

4. 從現在起,當您在刪除、插入或重新命名工作表時,目錄內容將自動即時更新。
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用