如何像word一样在EXCEL中创建“目录”?

发表于 讨论求助 2023-05-10 14:56:27

图:狮子鱼

十二少摄于重庆欢乐海底世界

2016年8月28日


收到客户的一个EXCEL,里面好多个sheet表,每个表的名字又都特别长,数都数不清,我知道word里面有个“插入目录”的功能,可以将正文中各个段落的标题整理成目录放在某一页,要是EXCLE可以把这些sheet表,也整理成一个目录文档还加上链接就好了。


第一步:打开EXCEL,在第一个sheet表前面插入一个空白的sheet表,改名为“目录”;




第二步:鼠标停留在目录表中的任何位置,单击ALT+F11,弹出以下界面:




第三步:单击【视图】-【代码窗口】:





第四步:在弹出的代码界面复制粘贴以下代码:


Sub getAllWorkSheets()

' 得到所有的sheet页名称,并加上超连接

    totalNum = Worksheets.Count

    Sheet1.Activate

    Range("B:B").Select

    Selection.NumberFormatLocal = "@"

    ' 从2开始就是不带“目录”Sheet页,如果要带,则从1开始

    For index_i = 2 To totalNum

        sheetName = Worksheets(index_i).Name

        Cells(index_i, 2) = sheetName

        tar_sheet = "'" & sheetName & "'"

        Cells(index_i, 2).Select

        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _

        tar_sheet & "!A1", TextToDisplay:=sheetName

    Next index_i

End Sub




第五步:第四行代码  Sheet1.Activate,要根据左边目录所在sheet的实际数字修改,比如左边的目录所在的Sheet 显示的是sheet23,则要修改成 Sheet23.Activate,见下图:





第六步:运行,点击绿色三角符号,等待一会。




第七步:返回目录表格,查看目录:




大功告成,终于又愉快地偷了一次懒!


再啰嗦一下,如果运行时报以下错:



那代表没有找到目录所在的Sheet表,修改第四行Sheet后面的数字为正确的即可。



长按图片,识别二维码,关注公众号,谢谢支持!



发表
26906人 签到看排名