工作久了,积累了很多的碎片资料,为了方便查找,就将他们塞进了一个excel文件分表保存。然而追求方便快捷之路哪有什么尽头,于是又想要一份可以跳转并返回的目录,自动将其他表格的表格名称汇总到目录表,并在分表添加返回目录的按钮。
这几天尝试了deepseek,确实非常好用,将这个问题抛给了它,几秒就给出了方法。博主习惯用vba,所以就贴一下vba的解决方案:
Sub CreateTableOfContentsWithBackLinks()
Dim ws As Worksheet
Dim wsIndex As Worksheet
Dim i As Integer
' 设置目录工作表(第一个工作表)
Set wsIndex = ThisWorkbook.Sheets(1)
wsIndex.Cells.Clear
wsIndex.Name = "目录" ' 确保第一个工作表名为"目录"
wsIndex.Cells(1, 1).Value = "目录"
wsIndex.Cells(1, 1).Font.Bold = True
wsIndex.Cells(1, 1).Font.Size = 16
i = 2
For Each ws In ThisWorkbook.Sheets
If ws.Name <> wsIndex.Name Then
' 在目录工作表中添加跳转到各工作表的链接
wsIndex.Cells(i, 1).Value = ws.Name
wsIndex.Hyperlinks.Add _
Anchor:=wsIndex.Cells(i, 1), _
Address:="", _
SubAddress:="'" & ws.Name & "'!A1", _
TextToDisplay:=ws.Name
' 在各工作表的A1单元格添加返回目录的链接
With ws.Range("A1")
.Value = "返回目录"
.Font.Bold = True
.HorizontalAlignment = xlLeft
.Hyperlinks.Delete ' 先删除现有超链接(如果有)
.Hyperlinks.Add _
Anchor:=.Cells(1, 1), _
Address:="", _
SubAddress:="'" & wsIndex.Name & "'!A1", _
TextToDisplay:="返回目录"
End With
i = i + 1
End If
Next ws
' 调整目录列宽
wsIndex.Columns(1).AutoFit
' 为目录工作表本身添加格式
With wsIndex
.Columns(1).ColumnWidth = 30
.Rows(1).RowHeight = 25
End With
End Sub
自动生成的目录页;
自动生成的返回链接。