要解决的问题
创建一个不含隐藏工作表的目录
-
在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对象