美文网首页
VBA实例01:创建目录(不含隐藏的工作表)

VBA实例01:创建目录(不含隐藏的工作表)

作者: michaelxwang | 来源:发表于2019-06-28 11:06 被阅读0次

要解决的问题

创建一个不含隐藏工作表的目录

  • 在Excel中创建一个目录工作表。
  • 在该工作表中列出工作簿中其他工作表的名称,并设置超链接。
  • 该目录中不能包含隐藏工作表。

解决思路

  1. 判断工作簿中是否含有名称为“工作表目录”的工作表
  2. 若不含名称为 “工作表目录” 的工作表则创建该工作表
  3. 遍历工作簿中的所有工作表,取出非隐藏工作表,并设置超链接

代码

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

实例演示

创建目录(不含隐藏文件).gif

总结

Hyperlinks.Add 方法 (Excel)

向指定的区域或形状添加超链接。

语法

expression.Add (Anchor, Address, SubAddress, ScreenTip, TextToDisplay)

Parameters

名称 必需/可选 数据类型 说明
Anchor 必需 Object 超链接的定位标记。 可为 RangeShape 对象。
Address 必需 String 超链接的地址。
SubAddress 可选 Variant 超链接的子地址。
ScreenTip 可选 Variant 当鼠标指针停留在超链接上时所显示的屏幕提示。
TextToDisplay 可选 Variant 要为超链接显示的文本。

返回值

一个 Hyperlink 对象,它代表新的超链接。

附:更多信息点击查看微软官方文档中关于hyperlinks对象的介绍 VBA官方文档-hyperlinks对象

相关文章

网友评论

      本文标题:VBA实例01:创建目录(不含隐藏的工作表)

      本文链接:https://www.haomeiwen.com/subject/lyajcctx.html