手动更新首页目录功能 手动更新首页目录功能是一个基于 Excel/WPS VBA 的工作表目录生成工具,主要用于在工作簿的“首页”工作表中,自动生成当前工作簿所有工作表的目录清单,并为每个工作表名称添加可点击跳转的超链接。
该功能适合用于全成本测算模板、工程清单模板、报价模板、台账系统、项目管理表、多工作表汇总文件等场景。当工作簿中包含大量工作表时,用户可以通过“首页目录”快速跳转到目标工作表,提升浏览和操作效率。
本版本为 2.5 WPS适配优化版 ,针对 Excel 与 WPS 表格环境进行了兼容增强,包含环境状态保存与恢复、批量数组写入、超链接安全添加、状态栏提示、错误处理、WPS 属性兼容访问等优化逻辑,适合在实际模板中长期使用。
📌 核心功能一览
功能
说明
手动更新目录
运行 CreateTOC 宏后自动刷新首页目录
自动扫描工作表
遍历当前工作簿内所有工作表
自动排除首页
目录表“首页”本身不会列入目录
自动编号
为每个工作表生成序号
自动生成超链接
点击目录中的工作表名称即可跳转到对应工作表 A1
多列目录布局
支持 3 组“序号 + 名称”并排显示
最大目录容量限制
默认支持最多 96 个工作表目录项
批量写入数据
使用数组一次性写入目录区域,提高执行效率
清除旧目录
运行前自动清除旧内容和旧超链接
统一设置格式
自动设置字体、字号、对齐方式
状态栏提示
生成过程中显示当前处理状态
Excel/WPS 兼容
使用安全属性访问方式,提升 WPS 兼容性
错误处理完善
出错时提示错误号与错误描述,并恢复环境状态
⚙️ 项目结构说明 模块组成
模块
类型
作用
Module1
标准模块
存放 CreateTOC 主过程及辅助函数
首页
工作表
承载自动生成的目录内容
更新按钮
表单控件/形状按钮
可绑定 CreateTOC 宏,用于手动刷新目录
默认目录区域
参数
默认值
说明
目录表名称
首页
用于生成目录的工作表
起始行
第 3 行
目录从第 3 行开始
起始列
第 4 列,即 D 列
目录从 D 列开始
最大行数
32 行
每组目录最多显示 32 项
最大列数
6 列
3 组“序号 + 名称”并排显示
最大目录项
96 项
32 行 × 3 组
目录布局示意 默认从 D3:I34 生成目录,结构如下:
D列
E列
F列
G列
H列
I列
序号
工作表名称
序号
工作表名称
序号
工作表名称
1
表1
33
表33
65
表65
2
表2
34
表34
66
表66
…
…
…
…
…
…
32
表32
64
表64
96
表96
🚀 使用方式 第一步:准备“首页”工作表 请确保当前工作簿中存在名为:
的工作表。
如果目录页名称不是“首页”,需要修改代码中的对应名称。
第二步:打开 VBA 编辑器 在 Excel 或 WPS 表格中按下:
进入 VBA 编辑器。
第三步:插入标准模块 在 VBA 编辑器中依次点击:
新建一个标准模块,例如 Module1。
第四步:粘贴完整代码 将本文下方的完整 VBA 代码复制到标准模块中。
第五步:运行宏 可以通过以下方式运行:
1 开发工具 → 宏 → CreateTOC → 运行
也可以在“首页”工作表中添加按钮,并将按钮绑定到:
以后点击按钮即可手动更新首页目录。
📋 完整代码 标准模块代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 Option Explicit Private Const TOC_START_ROW As Long = 3 Private Const TOC_START_COL As Long = 4 Private Const TOC_MAX_ROWS As Long = 32 Private Const TOC_MAX_COLS As Long = 6 Sub CreateTOC() On Error GoTo EH Dim ws As Worksheet Dim tocSheet As Worksheet Dim i As Long Dim rowCount As Long Dim colOffset As Long Dim pairCount As Long Dim maxItems As Long Dim totalSheets As Long Dim arr() As Variant Dim rngTOC As Range Dim savedScreenUpdating As Boolean Dim savedEnableEvents As Variant Dim savedCalculation As Variant Dim hasEnableEvents As Boolean Dim hasCalculation As Boolean savedScreenUpdating = Application.ScreenUpdating hasEnableEvents = TOC_TryGetAppProperty("EnableEvents" , savedEnableEvents) hasCalculation = TOC_TryGetAppProperty("Calculation" , savedCalculation) Application.ScreenUpdating = False TOC_TrySetAppProperty "EnableEvents" , False TOC_TrySetAppProperty "Calculation" , -4135 Set tocSheet = TOC_GetWorksheetSafe("首页" ) If tocSheet Is Nothing Then MsgBox "目录表未找到,请检查工作表名称!" , vbExclamation, "CreateTOC" GoTo CleanUp End If pairCount = TOC_MAX_COLS \ 2 maxItems = TOC_MAX_ROWS * pairCount Set rngTOC = tocSheet.Range( _ tocSheet.Cells(TOC_START_ROW, TOC_START_COL), _ tocSheet.Cells(TOC_START_ROW + TOC_MAX_ROWS - 1 , TOC_START_COL + TOC_MAX_COLS - 1 )) rngTOC.ClearContents On Error Resume Next rngTOC.Hyperlinks.Delete On Error GoTo EH ReDim arr(1 To TOC_MAX_ROWS, 1 To TOC_MAX_COLS) totalSheets = ThisWorkbook.Worksheets.Count i = 0 For Each ws In ThisWorkbook.Worksheets If ws.Name <> tocSheet.Name Then i = i + 1 If i > maxItems Then MsgBox "目录区域已满(最多 " & maxItems & " 项),多余工作表未列入目录。" , _ vbExclamation, "CreateTOC" Exit For End If rowCount = ((i - 1 ) Mod TOC_MAX_ROWS) + 1 colOffset = (Int((i - 1 ) / TOC_MAX_ROWS) * 2 ) + 1 arr(rowCount, colOffset) = i arr(rowCount, colOffset + 1 ) = ws.Name End If Next ws rngTOC.Value = arr TOC_SetStatusBarSafe "正在生成目录超链接..." i = 0 For Each ws In ThisWorkbook.Worksheets If ws.Name <> tocSheet.Name Then i = i + 1 If i > maxItems Then Exit For rowCount = TOC_START_ROW + ((i - 1 ) Mod TOC_MAX_ROWS) colOffset = Int((i - 1 ) / TOC_MAX_ROWS) * 2 TOC_AddHyperlinkSafe tocSheet, _ rowCount, _ TOC_START_COL + colOffset + 1 , _ ws.Name If i Mod 20 = 0 Then TOC_SetStatusBarSafe "正在生成目录超链接 (" & i & ")..." End If End If Next ws TOC_SetStatusBarSafe "正在设置目录格式..." On Error Resume Next With rngTOC.Font .Name = "微软雅黑" .Size = 10 .Color = RGB(0 , 0 , 0 ) .Underline = xlUnderlineStyleNone End With On Error GoTo EH Dim colPair As Long Dim rngSeq As Range Dim rngName As Range For colPair = 0 To pairCount - 1 Set rngSeq = tocSheet.Range( _ tocSheet.Cells(TOC_START_ROW, TOC_START_COL + colPair * 2 ), _ tocSheet.Cells(TOC_START_ROW + TOC_MAX_ROWS - 1 , TOC_START_COL + colPair * 2 )) With rngSeq .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With Set rngName = tocSheet.Range( _ tocSheet.Cells(TOC_START_ROW, TOC_START_COL + colPair * 2 + 1 ), _ tocSheet.Cells(TOC_START_ROW + TOC_MAX_ROWS - 1 , TOC_START_COL + colPair * 2 + 1 )) With rngName .HorizontalAlignment = xlLeft .VerticalAlignment = xlCenter End With Next colPair MsgBox "XLCS模版目录已更新完成!" , vbInformation, "CreateTOC" CleanUp: On Error Resume Next TOC_ClearStatusBarSafe Application.ScreenUpdating = savedScreenUpdating If hasEnableEvents Then TOC_TrySetAppProperty "EnableEvents" , savedEnableEvents If hasCalculation Then TOC_TrySetAppProperty "Calculation" , savedCalculation Application.CutCopyMode = False Exit Sub EH: MsgBox "目录生成失败:" & vbCrLf & _ "错误号:" & Err.Number & vbCrLf & _ "描述:" & Err.Description, vbCritical, "CreateTOC" Resume CleanUp End Sub Public Function IsWPSEnvironment() As Boolean Static cachedResult As Boolean Static isChecked As Boolean If Not isChecked Then On Error Resume Next cachedResult = (InStr(1 , Application.Name, "WPS" , vbTextCompare) > 0 ) If Not cachedResult Then cachedResult = (InStr(1 , Application.Name, "Kingsoft" , vbTextCompare) > 0 ) End If On Error GoTo 0 isChecked = True End If IsWPSEnvironment = cachedResult End Function Private Function TOC_GetWorksheetSafe(ByVal sheetName As String ) As Worksheet On Error Resume Next Set TOC_GetWorksheetSafe = ThisWorkbook.Worksheets(sheetName) On Error GoTo 0 End Function Private Sub TOC_AddHyperlinkSafe(ByVal tocSheet As Worksheet, _ ByVal targetRow As Long , _ ByVal targetCol As Long , _ ByVal sheetName As String ) Dim anchorCell As Range Set anchorCell = tocSheet.Cells(targetRow, targetCol) On Error Resume Next anchorCell.Value = sheetName anchorCell.Hyperlinks.Delete tocSheet.Hyperlinks.Add _ Anchor:=anchorCell, _ Address:="" , _ SubAddress:="'" & sheetName & "'!A1" , _ TextToDisplay:=sheetName On Error GoTo 0 End Sub Private Function TOC_TryGetAppProperty(ByVal propertyName As String , ByRef propertyValue As Variant) As Boolean On Error GoTo Failed propertyValue = CallByName(Application, propertyName, VbGet) TOC_TryGetAppProperty = True Exit Function Failed: propertyValue = Empty TOC_TryGetAppProperty = False Err.Clear End Function Private Function TOC_TrySetAppProperty(ByVal propertyName As String , ByVal propertyValue As Variant) As Boolean On Error GoTo Failed CallByName Application, propertyName, VbLet, propertyValue TOC_TrySetAppProperty = True Exit Function Failed: TOC_TrySetAppProperty = False Err.Clear End Function Private Sub TOC_SetStatusBarSafe(ByVal statusText As String ) On Error Resume Next Application.StatusBar = statusText On Error GoTo 0 End Sub Private Sub TOC_ClearStatusBarSafe() On Error Resume Next Application.StatusBar = False On Error GoTo 0 End Sub
🔍 技术要点详解 1. 使用常量统一控制目录区域 代码开头使用常量定义目录生成位置和容量:
1 2 3 4 Private Const TOC_START_ROW As Long = 3 Private Const TOC_START_COL As Long = 4 Private Const TOC_MAX_ROWS As Long = 32 Private Const TOC_MAX_COLS As Long = 6
含义如下:
常量
说明
TOC_START_ROW
目录起始行
TOC_START_COL
目录起始列
TOC_MAX_ROWS
每组目录最大行数
TOC_MAX_COLS
目录区域总列数
默认情况下,目录区域为:
即 6 列、32 行,按“序号 + 工作表名称”的形式分成 3 组。
2. 自动获取“首页”目录表 代码通过安全函数获取“首页”工作表:
1 Set tocSheet = TOC_GetWorksheetSafe("首页" )
如果当前工作簿中不存在“首页”,则会提示:
1 MsgBox "目录表未找到,请检查工作表名称!"
这样可以避免工作表名称错误导致程序中断。
3. 自动清除旧目录和旧超链接 每次重新生成目录前,代码会先清空原目录区域内容:
同时删除旧超链接:
1 rngTOC.Hyperlinks.Delete
这样可以避免重复运行后出现旧目录残留、超链接重复或跳转错误的问题。
4. 使用数组批量写入目录 目录数据不是逐个单元格写入,而是先写入数组:
1 ReDim arr(1 To TOC_MAX_ROWS, 1 To TOC_MAX_COLS)
遍历工作表时,将序号和工作表名称保存到数组中:
1 2 arr(rowCount, colOffset) = i arr(rowCount, colOffset + 1 ) = ws.Name
最后一次性写入目录区域:
这种方式比逐个单元格写入速度更快,尤其适合工作表数量较多的模板。
5. 自动生成多列目录布局 代码通过以下逻辑计算目录项所在行列:
1 2 rowCount = ((i - 1 ) Mod TOC_MAX_ROWS) + 1 colOffset = (Int((i - 1 ) / TOC_MAX_ROWS) * 2 ) + 1
效果是:
第 1 至第 32 个工作表写入第 1 组目录
第 33 至第 64 个工作表写入第 2 组目录
第 65 至第 96 个工作表写入第 3 组目录
这种布局比单列目录更节省首页空间。
6. 为工作表名称添加跳转超链接 代码使用以下过程为工作表名称添加超链接:
1 TOC_AddHyperlinkSafe tocSheet, rowCount, targetCol, ws.Name
核心语句为:
1 2 3 4 5 tocSheet.Hyperlinks.Add _ Anchor:=anchorCell, _ Address:="" , _ SubAddress:="'" & sheetName & "'!A1" , _ TextToDisplay:=sheetName
其中:
参数
说明
Anchor
超链接所在单元格
Address
外部链接地址,此处为空
SubAddress
工作簿内部跳转地址
TextToDisplay
显示的工作表名称
单击目录中的工作表名称后,即可跳转到对应工作表的 A1 单元格。
7. Excel/WPS 属性访问兼容处理 部分 WPS 环境对 Application.EnableEvents、Application.Calculation 等属性支持不完全,直接访问可能报错。
因此代码封装了安全访问函数:
1 2 TOC_TryGetAppProperty TOC_TrySetAppProperty
内部使用:
1 2 CallByName Application, propertyName, VbGet CallByName Application, propertyName, VbLet, propertyValue
这样可以在 Excel 和 WPS 中尽量兼容运行,避免因某些属性不可用而导致宏整体失败。
8. 保存并恢复应用环境 代码执行前保存环境状态:
1 2 3 savedScreenUpdating = Application.ScreenUpdating hasEnableEvents = TOC_TryGetAppProperty("EnableEvents" , savedEnableEvents) hasCalculation = TOC_TryGetAppProperty("Calculation" , savedCalculation)
执行过程中关闭屏幕刷新、事件与自动计算:
1 2 3 Application.ScreenUpdating = False TOC_TrySetAppProperty "EnableEvents" , False TOC_TrySetAppProperty "Calculation" , -4135
结束后统一恢复:
1 2 3 Application.ScreenUpdating = savedScreenUpdating If hasEnableEvents Then TOC_TrySetAppProperty "EnableEvents" , savedEnableEventsIf hasCalculation Then TOC_TrySetAppProperty "Calculation" , savedCalculation
这样可以减少闪烁、提升速度,并避免因运行宏改变用户原本的 Excel/WPS 设置。
9. 使用状态栏显示执行进度 代码在生成过程中通过状态栏提示当前状态:
1 TOC_SetStatusBarSafe "正在生成目录超链接..."
每处理 20 个目录项更新一次:
1 2 3 If i Mod 20 = 0 Then TOC_SetStatusBarSafe "正在生成目录超链接 (" & i & ")..." End If
执行结束后清空状态栏:
这种方式比频繁弹窗更友好,适合批量处理过程。
10. 统一设置目录格式 目录生成后,代码统一设置字体样式:
1 2 3 4 5 6 With rngTOC.Font .Name = "微软雅黑" .Size = 10 .Color = RGB(0 , 0 , 0 ) .Underline = xlUnderlineStyleNone End With
同时分别设置序号列与名称列的对齐方式:
使首页目录更加整齐、美观。
📊 相比普通目录生成代码的优化改进
优化项
普通代码
本版本
工作表扫描
简单遍历
自动排除首页
写入方式
单元格逐项写入
数组批量写入,速度更快
目录布局
通常单列显示
3 组多列布局,更节省空间
超链接处理
可能重复添加
添加前删除旧超链接
WPS 兼容
容易因属性不支持报错
使用安全属性读写函数
错误处理
通常较简单
统一错误捕获并恢复环境
环境恢复
可能遗漏恢复设置
保存并恢复屏幕刷新、事件、计算模式
状态提示
无进度提示
使用状态栏显示处理状态
格式设置
手动调整
自动统一字体和对齐方式
容量控制
无限制提示
超出最大项时主动提醒
代码冲突
辅助函数易重名
使用 TOC_ 前缀降低冲突
维护性
参数分散
常量集中管理
💡 可自定义参数 修改目录表名称 默认目录表名称为:
1 Set tocSheet = TOC_GetWorksheetSafe("首页" )
如果你的目录表叫“目录”,可以改为:
1 Set tocSheet = TOC_GetWorksheetSafe("目录" )
修改目录起始位置 默认从 D3 开始生成目录:
1 2 Private Const TOC_START_ROW As Long = 3 Private Const TOC_START_COL As Long = 4
如果希望从 B5 开始,可以修改为:
1 2 Private Const TOC_START_ROW As Long = 5 Private Const TOC_START_COL As Long = 2
修改每组目录行数 默认每组显示 32 行:
1 Private Const TOC_MAX_ROWS As Long = 32
如果首页空间较大,可以改为 40:
1 Private Const TOC_MAX_ROWS As Long = 40
修改目录列数 默认目录区域总列数为 6,即 3 组“序号 + 名称”:
1 Private Const TOC_MAX_COLS As Long = 6
如果只需要 2 组,可以改为:
1 Private Const TOC_MAX_COLS As Long = 4
如果需要 4 组,可以改为:
1 Private Const TOC_MAX_COLS As Long = 8
注意:TOC_MAX_COLS 建议使用偶数,因为每组目录需要两列:一列序号、一列工作表名称。
修改跳转目标单元格 当前超链接跳转到对应工作表的 A1:
1 SubAddress: ="'" & sheetName & "'!A1"
如果希望跳转到 A2,可改为:
1 SubAddress: ="'" & sheetName & "'!A2"
如果希望跳转到 B5,可改为:
1 SubAddress: ="'" & sheetName & "'!B5"
🛠️ 按钮设置建议 推荐添加“更新目录”按钮 可以在“首页”工作表中放置一个按钮,绑定宏:
按钮文字建议设置为:
或:
也可以使用:
表单按钮推荐命名
按钮名称
建议用途
btnUpdateTOC
更新目录
btnCreateTOC
生成目录
btnRefreshTOC
刷新目录
btnHomeTOC
首页目录
btnXLCS_TOC
XLCS目录按钮
虽然代码不依赖按钮名称,但规范命名有利于模板后期维护。
📐 推荐布局方式
位置
说明
首页顶部右侧
用户打开首页即可看到更新按钮
目录标题旁边
与目录功能关联明显
首页导航区
适合模板化系统
冻结窗格区域
滚动时仍可见
首页底部说明区
不影响目录主体展示
⚠️ 注意事项
当前代码默认目录工作表名称为 首页 ,请确保工作簿中存在该工作表。
“首页”工作表本身不会列入目录。
默认目录区域为 D3:I34,运行前会清除该区域原有内容和超链接。
如果该区域已有重要内容,请先调整常量中的起始行、起始列、最大行数或最大列数。
默认最多生成 96 个目录项,超出部分不会列入目录,并会弹出提示。
如果工作表名称包含特殊字符,代码已使用单引号包裹工作表名,通常可正常跳转。
如果首页工作表被保护,可能导致清除内容、写入数据或添加超链接失败。
WPS 部分版本的 Hyperlinks.Add 可能存在静默失败情况,建议生成后点击测试。
如果宏运行后没有生成目录,请检查宏安全设置是否允许运行 VBA。
如果工作簿中包含隐藏工作表,当前代码仍会将其列入目录;如需排除隐藏表,可进一步扩展判断。
📦 常见问题 Q1:为什么提示“目录表未找到”? 原因是当前工作簿中没有名为:
的工作表。
解决方法:
1 Set tocSheet = TOC_GetWorksheetSafe("首页" )
改为你的实际目录表名称。
Q2:为什么目录没有超链接? 可能原因包括:
WPS 当前版本对超链接添加支持异常
首页工作表处于保护状态
目录区域不可编辑
工作表名称异常
宏运行过程中被中断
建议先解除首页保护,再重新运行 CreateTOC。
Q3:可以不显示序号,只显示工作表名称吗? 可以,但需要调整数组写入逻辑和目录列布局。
当前代码每组使用两列:
如果只显示名称,可将目录列设计为单列或多列名称布局。
Q4:隐藏工作表会不会列入目录? 会。
当前代码遍历的是:
没有判断工作表是否隐藏。
如果需要排除隐藏表,可以在遍历时增加判断:
1 If ws.Visible = xlSheetVisible Then
Q5:可以自动在打开工作簿时更新目录吗? 可以。
在 ThisWorkbook 模块中添加:
1 2 3 Private Sub Workbook_Open() Call CreateTOC End Sub
但如果工作簿工作表较多,打开时自动生成可能稍慢。一般建议保留为手动更新,更稳妥。
Q6:可以跳转到每张表的指定区域吗? 可以。
修改超链接中的目标地址即可,例如跳转到 A2:
1 SubAddress: ="'" & sheetName & "'!A2"
Q7:WPS 表格可以用吗? 通常可以使用。
本版本已经针对 WPS 做了适配优化,包括:
安全读取 EnableEvents
安全读取 Calculation
安全设置状态栏
安全添加超链接
避免属性不兼容导致整体中断
但不同 WPS 版本差异较大,建议在正式模板发布前测试。
💡 扩展方向
方向
说明
排除隐藏表
只将可见工作表列入目录
自定义排序
按名称、编号、颜色或指定规则排序
增加返回首页按钮
在每张工作表添加返回首页链接
目录分组
按专业、阶段、类型对工作表分组
自动生成按钮
在首页自动创建“更新目录”按钮
双向导航
首页跳转到分表,分表可一键回首页
显示工作表状态
在目录中标记隐藏、保护、空表等状态
增加工作表颜色标识
根据工作表标签颜色设置目录字体或底色
目录搜索
增加搜索框快速定位工作表名称
自动编号同步
根据目录顺序自动重命名或标记工作表
📋 排除隐藏工作表示例 如果希望隐藏工作表不显示在目录中,可以将遍历部分增加判断。
示例思路:
1 2 3 4 5 6 7 8 9 10 11 For Each ws In ThisWorkbook.Worksheets If ws.Name <> tocSheet.Name Then If ws.Visible = xlSheetVisible Then End If End If Next ws
这样只有可见工作表会进入首页目录。
📋 添加返回首页链接思路 如果希望每个工作表都能返回“首页”,可以扩展一个宏,批量给各表 A1 添加返回首页链接:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Sub AddBackHomeLinks() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name <> "首页" Then ws.Range("A1" ).Value = "返回首页" ws.Hyperlinks.Add _ Anchor:=ws.Range("A1" ), _ Address:="" , _ SubAddress:="'首页'!A1" , _ TextToDisplay:="返回首页" End If Next ws MsgBox "返回首页链接已添加完成!" , vbInformation End Sub
该功能可与 CreateTOC 配合使用,实现完整的工作簿导航体系。
📞 技术支持 官网:
求助建议: http://xlcs.de/
邮件联系: admin@fdc.sd
📷 效果展示
XLCS — 让全成本测算更智能