分享

一键生成目录(完善版)

 Excel不加班 2019-12-26

这是去年写的一篇文章,今天,卢子根据学员的要求,又进行了改善。新增明细表返回目录这个功能以及如何使用代码。

读者留言:要提取一个工作簿内的所有工作表名称,用于制作目录,该如何实现?

关于工作表提取,大概分成3种情况,卢子详细说明一下。对于绝大多数的人而言,你只要懂得复制粘贴代码即可。

1.简单的提取工作表

先看效果动图。

这个是借助VBA代码生成的,不懂操作VBA的先看文章《就这么简单!一键按职业拆分成多个工作簿》,里面有详细的操作步骤。

源代码:

Sub 提取工作表()

    Dim i%

        For i = 1 To Sheets.Count

                k = k + 1

                Cells(k + 1, 2) = Sheets(i).Name

        Next

End Sub

2.提取工作表名称并创建超级链接

先看效果动图。

源代码:

Sub 建立目录()

    Dim i As Integer

        For i = 1 To Sheets.Count

            Sheets(1).Range("b" & 1 + i) = Sheets(i).Name

            Sheets(1).Range("b" & 1 + i).Select

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

            "'" & Sheets(i).Name & "'!a1", TextToDisplay:=Sheets(i).Name

        Next

End Sub

3.提取工作表名称并创建超级链接,制作明细表返回目录超级链接

先看效果动图。

源代码:

Sub 建立目录()

    Dim i As Integer

        For i = 1 To Sheets.Count

            Sheets(1).Range("b" & 1 + i) = Sheets(i).Name

            Sheets(1).Range("b" & 1 + i).Select

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

            "'" & Sheets(i).Name & "'!a1", TextToDisplay:=Sheets(i).Name

            Sheets(i).Hyperlinks.Add Anchor:=Sheets(i).Range("G2"), Address:="", SubAddress:=Sheets("目录").Name & "!A1", TextToDisplay:="返回目录"

        Next

End Sub

代码中的这个Range("G2")可以改动,比如你想在单元格A1创建返回目录的超级链接,可以改成Range("A1")

Step 01 点工作表标签,查看代码,插入一个模块,将代码复制粘贴进去,关闭VBA窗口。

Step 02 插入图片或者形状,用来运行代码。

Step 03 右键,指定宏,确定,就可以了。

这里有两个注意点:

01 第一个工作表的名字一定要叫目录

02 微信直接复制粘贴的代码可能出错,为了保证正确,请下载源代码文件。

推荐:一条公式将工资表的实发工资,查找引用到网银模板!

上篇:发票票号及金额整理小妙招

昨天在刷朋友圈的时候看到这张图,送给做会计的你。

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多