word选中所有的表格——宏

vbscript 复制代码
Sub 选中所有表格()
    Dim aTable As Table
    Application.ScreenUpdating = False
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    For Each aTable In ActiveDocument.Tables
        aTable.Range.Editors.Add wdEditorEveryone
    Next
    ActiveDocument.SelectAllEditableRanges wdEditorEveryone
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    Application.ScreenUpdating = True
End Sub

通过豆包/deepseek解释代码含义,指令为:这是一串word中vba代码,请逐条解释每行代码的意思,并将代码和解释的内容整合到一起。

代码逻辑详解:

  1. 权限操作技巧

    通过临时给表格添加wdEditorEveryone(所有人可编辑)权限,利用SelectAllEditableRanges方法实现多选区选中。这是Word VBA中间接选中多个非连续区域(如多个表格)的常用技巧。

  2. wdEditorEveryone 常量

    属于WdEditorType枚举,值为1,代表"任何可以打开文档的人"。该参数通常用于协作场景,此处仅作为选区工具使用。

  3. 性能优化
    ScreenUpdating的设置避免了反复刷新界面,显著提升代码执行速度(对含大量表格的文档尤其明显)。

vbscript 复制代码
' 定义一个名为"选中所有表格"的子程序,用于执行选中文档中所有表格的操作
Sub 选中所有表格()
    ' 声明一个 Table 类型的变量 aTable,用于在后续循环中引用文档中的表格
    Dim aTable As Table
    ' 关闭 Word 应用程序的屏幕更新功能,提高代码执行效率,避免屏幕闪烁
    Application.ScreenUpdating = False
    ' 删除当前活动文档中所有用户的可编辑区域,清除之前可能存在的可编辑区域标记
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    ' 开始一个 For Each 循环,遍历当前活动文档中的所有表格
    For Each aTable In ActiveDocument.Tables
        ' 为当前表格的范围添加所有用户的编辑权限,将表格标记为可编辑区域
        aTable.Range.Editors.Add wdEditorEveryone
    ' 结束 For Each 循环,程序回到循环起始处处理下一个表格
    Next
    ' 选中当前活动文档中所有用户可编辑的区域,即之前标记的所有表格
    ActiveDocument.SelectAllEditableRanges wdEditorEveryone
    ' 再次删除当前活动文档中所有用户的可编辑区域,清除之前添加的可编辑权限标记
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    ' 重新开启 Word 应用程序的屏幕更新功能,恢复正常的屏幕显示更新
    Application.ScreenUpdating = True
' 结束"选中所有表格"子程序
End Sub

参考:【一次性选择word文档中的全部表格】 https://www.bilibili.com/video/BV1QX4y1J7gd/?share_source=copy_web\&vd_source=e2338c063cd49188a452094eb0b6f740

相关推荐
IT小白杨20 小时前
多店铺防关联指纹浏览器哪个好:从账号关联判定模型到环境隔离架构的一次拆解
经验分享·物联网·矩阵·架构·指纹浏览器
恒锐丰科技林技术员1 天前
EG2181D 半桥栅极驱动芯片详解:高压 MOS/IGBT 驱动实用器件
经验分享·嵌入式硬件·硬件工程
数据库小学妹1 天前
什么是关系型数据库?零基础用一张订单表讲透原理、SQL与ACID
经验分享·关系型数据库·国产数据库·acid·关系数据库·关系模型·主键外键
hgfsjk1 天前
跨境电商ERP系统软件哪个好?2026年选型指南
大数据·经验分享·笔记·其他
虹科数字化与AR1 天前
AR远程医疗解决方案对比:技术特点与临床应用分析
经验分享
AIGC大时代1 天前
Obsidian × Claude Cowork × Word:把研究笔记变成可验收写作链
笔记·word·claude·学术写作·obsidian·研工作流
聚美智数1 天前
图片去摩尔纹 - 屏幕翻拍波纹消除 - 图像摩尔纹消解 - 屏幕干涉纹修复 API 接口介绍
经验分享·ocr
tianxuanjg1 天前
工业/协作机器人研发采购指南:如何适配新品迭代的CNC加工合作
人工智能·经验分享·机器人·无人机·材质
神明不懂浪漫1 天前
【第四章】索引——B+树、回表,加快数据库的查找能力的利器
开发语言·数据结构·数据库·经验分享·笔记·b树
Am-Chestnuts1 天前
通义千问任务清单怎么导出Word?用DS随心转保留层级和勾选项
开发语言·c#·word