要解决的问题
创建一个不含隐藏工作表的目录
- 在Excel中创建一个目录工作表。
- 在该工作表中列出工作簿中其他工作表的名称,并设置超链接。
- 该目录中不能包含隐藏工作表。
解决思路
- 判断工作簿中是否含有名称为“工作表目录”的工作表
- 若不含名称为 “工作表目录” 的工作表则创建该工作表
- 遍历工作簿中的所有工作表,取出非隐藏工作表,并设置超链接
代码
Sub 生成非隐藏的工作表目录()
'//生成非隐藏的工作表目录
Dim i As Integer
Dim j As Integer
Dim strsheets As String
Dim ZStr As String
'关闭屏幕更新
Application.ScreenUpdating = False
ZStr = "'"
'判断 是否有工作表目录
For i = 1 To ActiveWorkbook.Worksheets.Count
If Worksheets(i).Name = "工作表目录" Then
Exit For
End If
Next
'若没有 则新建工作表目录
If i > Worksheets.Count Then
Sheets.Add
ActiveSheet.Name = "工作表目录"
End If
'工作表目录移动
With Sheets("工作表目录")
.Move Before:=Sheets(1)
.Select
'设置目录表头
.Cells(1, 4) = "编号"
.Cells(1, 5) = "工作表目录"
j = 2
For i = 2 To ActiveWorkbook.Sheets.Count
'若工作表未隐藏
If Sheets(i).Visible = -1 Then
'则第j行第4列的值(编号)的值为j-1
.Cells(j, 4).Value = j - 1
'在第j行第5列设置工作表超链接
ActiveSheet.Hyperlinks.Add Anchor:=.Cells(j, 5), Address:="", SubAddress:=ZStr & Worksheets(i).Name & ZStr & "!A1", TextToDisplay:=Worksheets(i).Name
j = j + 1
End If
Next
End With
'打开屏幕更新
Application.ScreenUpdating = True
End Sub
实例演示

总结
Hyperlinks.Add 方法 (Excel)
向指定的区域或形状添加超链接。
语法
expression.Add (Anchor, Address, SubAddress, ScreenTip, TextToDisplay)
Parameters
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Anchor | 必需 | Object | 超链接的定位标记。 可为 Range 或 Shape 对象。 |
Address | 必需 | String | 超链接的地址。 |
SubAddress | 可选 | Variant | 超链接的子地址。 |
ScreenTip | 可选 | Variant | 当鼠标指针停留在超链接上时所显示的屏幕提示。 |
TextToDisplay | 可选 | Variant | 要为超链接显示的文本。 |
返回值
一个 Hyperlink 对象,它代表新的超链接。
附:更多信息点击查看微软官方文档中关于hyperlinks对象的介绍 VBA官方文档-hyperlinks对象
网友评论