EXCEL:用VBA获取所有工作表名称并加上超链接

2025-09-30 00:43:52

1、如下图示例中效果,工作表列表放置在B列中,工作表的增加、减少,该列表会自动更新。

EXCEL:用VBA获取所有工作表名称并加上超链接

2、在工作簿的“SheetActivate”事件中放置VBA语句,即可实现上述目标。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Dim shtIndex As Worksheet

    

    If ActiveSheet.Name = "Sheet1" Then '判断只有激活了总索引表才更新目录

    

        Set shtIndex = ThisWorkbook.Sheets("sheet1") '为方便之后调用,定义索引表名

        

        For i = 1 To ThisWorkbook.Worksheets.Count ''遍历所有工作表

            shtIndex.Cells(i, 2).Select '选中第二列的单元格

            

            With Selection:

                .Value = ThisWorkbook.Worksheets(i).Name '选中的单元格赋予工作表名称

                '在单元格中加上超链,链接到目标工作表的A1单元格

                .Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=shtIndex.Cells(i, 2).Value & "!A1", TextToDisplay:=shtIndex.Cells(i, 2).Value

            End With

            

        Next '结束循环

        

    End If

End Sub

解析:

1、Workbook_SheetActivate事件,只要工作簿的任一工作表被选择,都会触发该事件。从而可以有效监控工作的名称修改、顺序调整等。

2、遍历所有工作表,确保不漏不丢:

For i = 1 To ThisWorkbook.Worksheets.Count

3、.Hyperlinks.Add Anchor链接到指定的工作表

4、shtIndex.Cells(i, 2).Select工作表列表存放位置,可根据需要修改

EXCEL:用VBA获取所有工作表名称并加上超链接

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢