
Word 宏教程:一键全选文档中所有表格
—— 用 6 行代码,搞定手动半小时的重复操作
一、你有没有遇到过这种情况?
写了一篇几十页的标书 / 报告 / 方案,里面密密麻麻几十个表格。现在需要把所有表格统一调整格式——字体、行高、边框、底纹……
你发现 Word 居然没有“全选所有表格”的功能。能全选全文(Ctrl+A),但不能只全选表格。
于是你只能一个一个点:点表格 → 调格式 → 点下一个表格 → 调格式…… 几十个表格下来,手酸眼花,还容易漏。
今天就教你用一段 VBA 宏代码,一键选中文档中所有表格,从此告别重复劳动。
二、效果展示
运行宏之后,文档中所有表格将被同时选中(蓝底高亮),此时你可以批量设置字体、行高、边框等格式,一气呵成。

三、手把手教你使用
不用懂编程,跟着下面 5 步操作就行。整个过程不超过 2 分钟。
第1步打开 VBA 编辑器
打开你需要处理的 Word 文档,按下快捷键 Alt + F11,打开 VBA 编辑器(VBE窗口)。

第2步插入新模块
在左侧“工程资源管理器”中,右键点击你的文档名称 → 选择“插入” → 点击“模块”。

右侧会出现一个空白的代码编辑窗口。

第3步粘贴代码
将下面的完整代码复制,粘贴到右侧空白的代码窗口中:
Sub 表格全选()
'
' 表格全选 宏
'
'
DimtempTable As Table
Application.ScreenUpdating= False
'判断文档是否被保护
IfActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
MsgBox"文档已保护,此时不能选中多个表格!"
ExitSub
EndIf
'删除所有可编辑的区域
ActiveDocument.DeleteAllEditableRangeswdEditorEveryone
'添加可编辑区域
ForEach tempTable In ActiveDocument.Tables
tempTable.Range.Editors.AddwdEditorEveryone
Next
'选中所有可编辑区域
ActiveDocument.SelectAllEditableRangeswdEditorEveryone
'删除所有可编辑的区域
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
Application.ScreenUpdating= True
End Sub

第4步运行宏
回到 Word 文档界面(可以最小化 VBA 编辑器),按下 Alt + F8 打开“宏”对话框。
在列表中选择“表格全选” → 点击“运行”。
或者直接在 VBA 编辑器中,把光标放在代码内部,按 F5 键运行。

第5步查看效果
运行后,文档中所有表格会同时被选中。

此时你可以直接操作格式工具栏,统一调整所有表格的字体、边框、行高等。
用完后点击文档任意空白处即可取消选中。
💡 提示:首次使用宏时,Word 可能会提示“是否启用宏”。请在“文件 → 选项 → 信任中心 → 信任中心设置 → 宏设置”中选择“启用所有宏”,或将文档另存为 .docm(启用宏的Word文档)格式。 |
四、代码原理详解(小白忽略,会用就行)
想知道这段代码为什么能做到“全选所有表格”?下面逐段解释,零基础也能看懂。
核心思路:借力打力
Word 没有直接提供“选中所有表格”的命令,但有一个隐藏技巧——“可编辑区域”(Editor)。
思路分三步:
1. 给每个表格打上“可编辑”标记
2. 用“全选所有可编辑区域”命令一键选中所有被标记的内容
3. 选完之后,清除标记(恢复原状)
这样就巧妙地实现了“全选所有表格”的效果。
逐行解读
代码 | 作用说明 |
Dim tempTable As Table | 声明一个变量 tempTable,用来在循环中代表“当前表格” |
Application.ScreenUpdating = False | 关闭屏幕刷新,运行过程中屏幕不闪烁,速度更快 |
If ...ProtectionType = wdAllowOnlyFormFields | 检查文档是否处于“窗体保护”状态。如果是,直接弹窗提醒并退出 |
MsgBox "文档已保护..." | 弹出提示框告知用户文档被保护 |
Exit Sub | 退出宏,不执行后面的代码 |
DeleteAllEditableRanges wdEditorEveryone | 先清理一遍已有的可编辑区域标记,避免干扰 |
For Each tempTable In ...Tables | 遍历文档中的每一个表格 |
tempTable.Range.Editors.Add wdEditorEveryone | 核心!给当前表格的范围添加“所有人可编辑”标记 |
Next | 循环到下一个表格,直到所有表格都标记完 |
SelectAllEditableRanges wdEditorEveryone | 选中所有被标记为“可编辑”的区域——也就是所有表格 |
DeleteAllEditableRanges wdEditorEveryone | 清理:删除所有刚才添加的标记,恢复文档原状 |
Application.ScreenUpdating = True | 重新打开屏幕刷新 |
五、进阶技巧(相当好用!!!)
技巧1:添加到快速访问工具栏
每次按 Alt+F8 运行还是有点麻烦?可以把宏添加到 Word 顶部的“快速访问工具栏”,以后一键点击运行。
操作方法:文件 → 选项 → 快速访问工具栏 → 在“从下列位置选择命令”下拉中选“宏” → 找到“表格全选” → 点击“添加” → 确定。


以后直接点上图标识就可以运行啦!
技巧2:设置快捷键(可有可无!!!)
也可以给宏绑定一个快捷键,比如 Ctrl+Shift+T(T 代表 Table)。
操作方法:文件 → 选项 → 自定义功能区 → 键盘快捷方式“自定义” → 类别选“宏” → 找到“表格全选” → 在“请按新快捷键”中按下 Ctrl+Shift+T → 点击“指定” → 关闭。
技巧3:配合其他操作批量使用(这才是最终目的:选中以后对字体、表格、段落、样式等的调整,对所有表格都生效!!!)
选中所有表格后,你可以配合以下操作实现批量处理:
• 统一字体:选中后直接在“开始”选项卡设置字体、字号
• 统一边框:右键 → 表格属性 → 边框和底纹 → 统一设置
• 统一行高:右键 → 表格属性 → 行 → 指定高度
• 统一底纹:表格工具 → 设计 → 底纹颜色
• 复制到 Excel:选中后 Ctrl+C,到 Excel 中 Ctrl+V,可批量导出
六、注意事项
💡 注意:保存格式:含宏的文档需保存为 .docm 格式(启用宏的Word文档)。如果保存为普通 .docx,宏会丢失。 |
💡 注意:文档保护:如果文档启用了“限制编辑”(窗体保护),宏会弹出提示并自动退出,不会误操作。 |
💡 安全:安全提醒:从外部获取的宏代码可能携带病毒。本文提供的代码已逐行解读,可放心使用。对来源不明的宏,请勿轻易启用。 |
💡 兼容性:兼容性:本宏适用于 Word 2007 及以上所有版本(包括 Office 365)。WPS 暂不支持 VBA 宏功能(除非安装了 VBA 组件)。 |
— END — 关注我,获取更多实用办公技巧
夜雨聆风