ARTICLE · 1355320
Excel-vba工作表太多翻到头疼?一键生成带超链接目录,点哪跳哪
Excel-vba工作表太多翻到头疼?一键生成带超链接目录,点哪跳哪工厂台账一套文件十几、二十个工作表,来回拉标签找页面,经常点错。 手动做目录、加超链接,新增工作表还要手动补,改一次烦一次。 这段VBA数组代码,一键生成导航目录,自带跳转链接;新增工作表重新跑一遍就能刷新,工厂台账、品质报表、生产汇总表都能用。 说明:目录默认生成在新建【目录】工作表,自动放在A列,工作表名+跳转链接;隐藏表可以选择是否不列入目录。 完整VBA代码 vba Sub CreateSheetIndexLink() Dim sht As Worksheet Dim shtIndex As Worksheet Dim i As Long Dim arr() As Variant Dim cnt As Long '关闭屏幕刷新,提速 Application.ScreenUpdating = False '判断是否已有目录表,有就清空,没有新建 On Error Resume Next Set shtIndex = Sheets("目录") On Error GoTo 0 If shtIndex Is Nothing Then Set shtIndex = ThisWorkbook.Sheets.Add(Before:=ThisWorkbook.Sheets(1)) shtIndex.Name = "目录" Else shtIndex.Cells.Clear End If '表头 shtIndex.Range("A1").Value = "工作表导航目录" shtIndex.Range("A1").Font.Bold = True shtIndex.Range("A1").Font.Size = 14 shtIndex.Range("A2").Value = "点击名称直接跳转" cnt = 0 '遍历所有工作表,排除目录本身 For Each sht In ThisWorkbook.Sheets If sht.Name <> "目录" Then cnt = cnt + 1 '写入超链接 shtIndex.Hyperlinks.Add _ Anchor:=shtIndex.Cells(cnt + 2, 1), _ Address:="", _ SubAddress:="'" & sht.Name & "'!A1", _ TextToDisplay:=sht.Name End If Next sht '自动适配列宽 shtIndex.Columns("A").AutoFit Application.ScreenUpdating = True MsgBox "目录生成完成!一共【" & cnt & "】个工作表", vbInformation End Sub 使用步骤 1. Alt+F11打开VBA编辑器,插入【模块】 2. 粘贴全部代码,直接按F5运行 3. 自动生成叫【目录】的首页,点工作表名字,直接跳转到该表A1单元格 实用修改点(按需改) 1. 不想把隐藏工作表放进目录 在循环里面加判断: vba If sht.Name <> "目录" And sht.Visible = xlSheetVisible Then 2. 跳转不想定位A1,想固定跳到B2,修改SubAddress: vba SubAddress:="'" & sht.Name & "'!B2", 3. 目录想放在当前表,不新建工作表,删掉新建目录表那段,把shtIndex换成ActiveSheet ❤️每日持续分享职场办公实用技巧,收藏关注不迷路。 Excel-vba一键整行高亮异常数据|产能不达标、不良率超标直接标红,不用反复设置条件格式 Excel-vba台账怕崩、文件损坏?定时自动备份,后台静默存副本 Excel-多人共用台账乱改表头?这个VBA一键设置区域保护,只让填该填的地方 Excel-图表不用手动改!VBA一键刷新图表数据源、统一样式,报表更新少折腾















































































