- 检查目录工作表是否存在,否则创建一个名为“目录”的新工作表。
- 写入目录标题,在目录工作表的第一个单元格中写入标题“目录”。
- 创建命名范围,以便稍后可以通过名称引用目录工作表。
- 遍历每个工作表:使用 循环遍历工作簿中的每个工作表。
- 获取工作表名称,并确保当前工作表不是目录工作表。
- 对于每个非目录工作表, 并在目录工作表中创建超链接,链接到当前工作表的单元格A1。
5.添加“返回目录”项:再次遍历每个工作表。
- 对于每个非目录工作表,在单元格G1中写入“返回目录”。
- 在当前工作表中创建超链接,链接到目录工作表的单元格A1,并将“返回目录”作为显示文本。

Sub CreateHyperlinks() Dim sht As Worksheet, directorySheet As Worksheet Dim i As Long, strShtName As String On Error Resume Next Set directorySheet = ThisWorkbook.Worksheets("目录") On Error GoTo 0 If directorySheet Is Nothing Then Set directorySheet = Worksheets.Add(before:=Worksheets(Worksheets.Count)) directorySheet.Name = "目录" End If directorySheet.Cells(1, 1).Value = "目录" On Error Resume Next ThisWorkbook.Names.Add Name:="目录", RefersTo:=directorySheet.Range("A1") On Error GoTo 0 i = 1 For Each sht In ThisWorkbook.Worksheets strShtName = sht.Name If strShtName <> directorySheet.Name Then i = i + 1 directorySheet.Hyperlinks.Add Anchor:=directorySheet.Cells(i, 1), Address:="", _ SubAddress:="'" & strShtName & "'!A1", TextToDisplay:=strShtName End If Next For Each sht In ThisWorkbook.Worksheets If sht.Name <> directorySheet.Name Then If sht.Cells(1, 7).Value <> "返回目录" Then sht.Cells(1, 7).Value = "返回目录" End If sht.Hyperlinks.Add Anchor:=sht.Cells(1, 7), Address:="", _ SubAddress:="目录!A1", TextToDisplay:="返回目录" End If NextEnd Sub