今天给大家带来一个超级实用的小技巧:如何在Excel中自动生成一个目录,并且点击目录项可以直接跳转到相应的工作表,同时还能轻松返回目录。这对于那些需要管理多张工作表的大型文件来说,简直就是救命稻草!更棒的是,整个过程只需要一点点VBA代码,哪怕你从未接触过VBA,也完全不用担心,我会手把手教你操作!

一、什么是VBA?

首先,先简单介绍一下VBA。VBA,全称是Visual Basic for Applications,是Microsoft Office应用程序(如Excel、Word等)的编程语言。通过VBA,我们可以创建自定义的功能,自动化日常任务,极大地提高工作效率。

二、在Excel中启用“开发工具”选项卡

打开Excel:首先,打开你想要使用的Excel工作簿。

  • 进入Excel选项
  • 点击Excel窗口左上角的“文件”。
  • 在文件菜单中,选择“选项”,这会打开一个新的Excel选项窗口。
  • 启用开发工具选项卡
  • 在Excel选项窗口中,选择左侧的“自定义功能区”。
  • 在右侧的“自定义功能区”部分,找到“主选项卡”列表,并在其中找到“开发工具”选项。
  • 勾选“开发工具”旁边的复选框。
  • 点击“确定”,返回Excel主界面。
  • 现在,你会在Excel的功能区(Ribbon)中看到“开发工具”选项卡了。

三、如何打开VBA编辑器?

想要运行我们今天的代码,你需要先打开Excel的VBA编辑器。操作步骤如下:

  1. 打开Excel,按下 Alt F11 组合键。这样就能直接进入VBA编辑器。

excel一键生成超链接目录(只需要套用)-趣帮office教程网

  1. 在VBA编辑器中,点击“插入” -> “模块”,这会在左侧的“项目资源管理器”中新增一个模块,你可以在这里编写和保存VBA代码。

excel一键生成超链接目录(只需要套用)-趣帮office教程网

四、编写和运行VBA代码

现在,让我们开始编写代码,为你的Excel工作簿自动生成一个目录。将以下代码复制粘贴到刚刚创建的模块中:

Sub CreateTableOfContents()
Dim ws As Worksheet
Dim tocWs As Worksheet
Dim lastRow As Long
Dim i As Integer
Dim tocName As String
tocName = "目录"
' 删除已有的目录表(如果存在)
On Error Resume Next
Application.DisplayAlerts = False
Worksheets(tocName).Delete
Application.DisplayAlerts = True
On Error GoTo 0
' 创建新目录表
Set tocWs = Worksheets.Add
tocWs.Name = tocName
' 设置目录表头
tocWs.Range("A1").Value = "工作表目录"
tocWs.Range("A1").Font.Bold = True
tocWs.Range("A1").Font.Size = 14
' 遍历所有工作表,生成目录
i = 2
For Each ws In ThisWorkbook.Sheets
If ws.Name <> tocName Then
tocWs.Hyperlinks.Add Anchor:=tocWs.Cells(i, 1), Address:="", SubAddress:="'" & ws.Name & "'!A1", TextToDisplay:=ws.Name
ws.Hyperlinks.Add Anchor:=ws.Cells(1, 1), Address:="", SubAddress:="'" & tocName & "'!A1", TextToDisplay:="返回目录"
i = i   1
End If
Next ws
' 设置目录表的样式
lastRow = tocWs.Cells(tocWs.Rows.Count, 1).End(xlUp).Row
With tocWs.Range("A2:A" & lastRow)
.Font.Size = 12
.Font.Bold = False
.EntireColumn.AutoFit
End With
End Sub

复制完这串代码,代码比较多,左右可以滑动,看全所有代码,然后按F5,代码就生效了,一个目录就做成了

excel一键生成超链接目录(只需要套用)-趣帮office教程网

结论、适用场景

这个功能特别适合那些有大量分表的工作簿,比如月度报告、项目管理文件、学生成绩管理表等等。通过目录,你可以轻松地跳转到所需的分表,并且在完成查看后,快速返回目录表,极大地提升了工作效率。