小编

创建一个名为“目录”的事情表,并在个中列出其他事情表的超链接,同时在每个事情表中添加了一个用于返回目录的超链接。

Excel VBA快速创建超链接

检讨目录事情表是否存在,否则创建一个名为“目录”的新事情表。
写入目录标题,在目录事情表的第一个单元格中写入标题“目录”。
创建命名范围,以便稍后可以通过名称引用目录事情表。
遍历每个事情表:利用 循环遍历事情簿中的每个事情表。
获取事情表名称,并确保当前事情表不是目录事情表。
对付每个非目录事情表, 并在目录事情表中创建超链接,链接到当前事情表的单元格A1。
遍历每个事情表:利用 循环遍历事情簿中的每个事情表。
对付每个非目录事情表,在单元格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 = "返回目录" ' 在G1单元格写入返回目录 End If ' 建立超链接 sht.Hyperlinks.Add Anchor:=sht.Cells(1, 7), Address:="", _ SubAddress:="目录!A1", TextToDisplay:="返回目录" End If NextEnd Sub