这是去年写的一篇文章,今天,卢子根据学员的要求,又进行了改善。新增明细表返回目录这个功能以及如何使用代码。
读者留言:要提取一个工作簿内的所有工作表名称,用于制作目录,该如何实现?
关于工作表提取,大概分成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)
联系客服