1、如下图示例中效果,工作表列表放置在B列中,工作表的增加、减少,该列表会自动更新。
2、在工作簿的“SheetActivate”事件中放置VBA语句,即可实现上述目标。P筠续师诈rivate Sub Workbook_SheetA艘早祓胂ctivate(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 IfEnd Sub解析:1、Workbook_SheetActivate事件,只要工作簿的任一工作表被选择,都会触发该事件。从而可以有效监控工作的名称修改、顺序调整等。2、遍历所有工作表,确保不漏不丢:For i = 1 To ThisWorkbook.Worksheets.Count3、.Hyperlinks.Add Anchor链接到指定的工作表4、shtIndex.Cells(i, 2).Select工作表列表存放位置,可根据需要修改