乐于分享
好东西不私藏

Word 宏教程:一键全选文档中所有表格

Word 宏教程:一键全选文档中所有表格

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 —          关注我,获取更多实用办公技巧