java生成excel文件到指定目录_Excel | VBA——生成工作表目录

本文介绍了如何使用VBA在Excel中生成工作表目录,包括无超链接和带超链接的目录方法。无超链接的目录通过For-Next循环将工作表名称写入指定单元格;带超链接的目录则能实现与工作表之间的切换,代码简洁实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

韩老师讲office2020-03-26 21:26

韩老师曾经写过一篇文章:

Excel | 给工作表建目录:函数法+非函数法

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

如下图:

8bcddaefbfa057eda0c02d0060f9db54.png

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

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

6eb8750ad613f9acd3af9916969898f0.png

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

有超链接的目录

在代码窗口中输入:

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

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

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

看代码截图:

e43cd8832556ffc9194b1b7d2c6d826e.png

效果如下:

a14c9cbcb754e967eef2cf741890ff39.gif

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值