VBA实例:自动生成工作表目录

文摘   2024-12-14 20:30   四川  

大家好,这是Excel小火箭的第52次分享,若有不妥之处,欢迎批评指正。

前两天有小伙伴微信留言说,想要在汇总的工作表中快速链接到对应的工作子表,也就是我们常说的工作表目录。今天得空一起探讨下:如何自动生成工作表目录?

▲ 回复"小火箭",获取源代码

编程思路:①遍历获取工作表名;②通过Hyperlinks.Add 方法添加超链接即可。

语法:Hyperlinks.Add 用于将指定的区域添加超链接。表达式.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)

'示例With Worksheets(1)    .Hyperlinks.Add Anchor:=.Range("a5"), _        Address:="http://aSmallRocket.com", _        ScreenTip:="aSmallRocket", _        TextToDisplay:="aSmallRocket"End With
我们曾在《获取文件夹及子文件夹下,所有文件列表》一文中一起探讨过获取文件夹或子文件夹下所有文件列别,配合Hyperlinks方法,同样可以生成对应的文件目录,一起来Looklook 小视频:

按照惯例,附上源码。

Sub btn_RocketShtContents()    '// 适用于一键生成表格目录    '// 2024-12-14 By Sdx孙大侠//公众号: Excel小火箭
    Dim Sht As Worksheet, Shtfile As String, rng As Range, s As Worksheet    Dim i As Long, filePath As String    Dim arrFiles
    Shtfile = "rocket_目录"    If SheetExists(Shtfile) = False Then Worksheets.Add(Before:=Worksheets(1)).Name = Shtfile
    Set Sht = Worksheets(Shtfile)
    With Sht        If Len(.Range("A1")) > 0 Then            If MsgBox("文件目录已生成,是否重新获取?", vbOKCancel + vbInformation, rokcetInfo) = vbCancel Then                Exit Sub            End If        End If
        .Cells.Clear        .Range("A1:C1").Value = Array("序号", "文件名称", "打开链接")
        For Each s In Worksheets            If s.Name <> Sht.Name Then                With .Range("A" & getLastRow(Sht))                    .Offset(10).Value = getLastRow(Sht)                    .Offset(11).Value = s.Name                    .Hyperlinks.Add Anchor:=.Offset(12), Address:="'" & s.Name & "!A1", ScreenTip:="aSmallRocket", TextToDisplay:="点我打开"                End With            End If        Next
    End WithEnd Sub

▲ 回复"小火箭",获取源代码


希望本期文章对你有所启发,源码已同步上传,回复关键字"VBA"获取下载地址。


推荐阅读

分享几个VBA编程好习惯

VBA实例:获取文件列表的两种方法


-END-

客官都看到这儿了
记得点赞加关注哦
下次更新时间,周日21:35

Excel小火箭
一个专注于Excel技巧分享的公众号