推荐孙老师的vba课程
《跟着孙兴华学习Excel VBA 第一季》
题目:生成带超链接的工作表目录
老师解法
Sub ml()
Dim sht As Worksheet, i&, strShtName$
Columns(1).ClearContents '清空A列数据
Cells(1, 1) = "目录" '第一个单元格写入标题"目录"
i = 1 '将i的初值设置为1.
For Each sht In Worksheets '循环当前工作簿的每个工作表
strShtName = sht.Name
If strShtName <> ActiveSheet.Name Then
'如果sht的名称不是当前工作表的名称则开始在当前工作表建立超链接
i = i + 1 '累加工作表数量
ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", _
SubAddress:="'" & strShtName & "'!a1", TextToDisplay:=strShtName
'建超链接
End If
Next
End Sub
个人解法
Public Sub m2()
Dim sht As Worksheet
Dim i As Integer
Dim shtName As String
If ActiveSheet.Name = "Sheet1" Then '避免超链接更新到其他工作表
Columns(1).ClearContents
Cells(1, 1) = "目录"
i = 1
For Each sht In Worksheets
shtName = sht.Name
If shtName <> ActiveSheet.Name Then
i = i + 1
ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", _
SubAddress:="'" & shtName & "'!a1", TextToDisplay:=shtName
End If
Next
End If
End Sub
超链接函数用法
1、.Hyperlinks.Add Anchor
链接到指定的工作表
2、Cells(i, 2).Select
工作表列表存放位置,可根据需要修改
3、Address
是内部链接可以不填写