当前位置: 首页 > Excel > Excel常用函数 > ExcelExcel技巧 > ExcelVBA——生成工作表目录

ExcelVBA——生成工作表目录

发布时间:2020年09月27日 06:13:27 来源: 点击量:570

【摘要】1、函数法:需要公式—名称处在新建名称对话框中引用位置输入公式:=INDEX(GET WORKBOOK(1),ROW(A1))&T(NOW())。再利用公式=IFERROR(HYPERL

1、函数法:

需要“公式—名称”处在新建名称对话框中引用位置输入公式:

=INDEX(GET.WORKBOOK(1),ROW(A1))&T(NOW())。再利用公式“=IFERROR(HYPERLINK(目录&"!A1",MID(目录,FIND("]",目录)+1,99)),"")”生成目录。

此方法可行,但公式稍难写,一不注意就错了。

2、非函数法:

利用“兼容性报表”生成目录。这种方法虽没有太复杂的公式,但不容易被想到,而且生成的目录带有单元格地址,看起来不像纯正的目录。

今天介绍VBA的方法,只用简单的代码即可生成目录。

无超链接的目录

在代码窗口中输入代码:

Sub 目录()  For x = 2 To Sheets.Count    Cells(x, 1).Value = Sheets(x).Name  NextEnd Sub

如下图:

ExcelVBA——生成工作表目录

此段代码应用了For-Next循环语句,读取从第2个一直到最后一个工作表,然后将每个工作表的名称依次写入目录工作中的第1列单元格。

插入一个按钮,并指定宏,如下图:

ExcelVBA——生成工作表目录

这种方法简单,但是生成的目录没有超链接,不能链接到相应工作表,请看下面的方法,可以实现目录与工作表之间的切换。

有超链接的目录

在代码窗口中输入:

Sub 目录()Application.ScreenUpdating = False '关闭屏幕更新Dim i As Integer, sht As Worksheet, shtname As StringColumns(1).ClearContents  '清除A列Cells(1, 1) = "目录"     '“部门费用”工作表A1单元格添加数据“目录”i = 1For Each sht In Worksheetsshtname = sht.NameIf shtname <> ActiveSheet.Name Then  i = i + 1  ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="",  SubAddress:="'" & shtname & "'!a1", ScreenTip:="超链接到" & sht.Name & "工作表",TextToDisplay:=shtname          '在“部门费用”工作表A列中添加工作表名称  With sht    sht.Hyperlinks.Add anchor:=sht.Cells(1, 10), Address:="",    SubAddress:="部门费用!a" & i, ScreenTip:="返回目录", TextToDisplay:="返回目录"          '在每一个不是“部门费用”的工作表JI单元格的中添加“返回目录”按钮  End WithEnd IfNextApplication.ScreenUpdating = True    '开启屏幕更新End Sub

部分语句太长,直接把代码复制过来观感不好,大家可以把手机横过来,可读性增加一些。

但如果不把代码放在这里,只截图,大家又没办法复制。

看代码截图:

ExcelVBA——生成工作表目录

效果如下:

ExcelVBA——生成工作表目录

大家可以根据自己处理数据的实际需求选择合适代码建议目录。

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部