当前位置: 首页 > news >正文

word选中所有的表格——宏

Sub 选中所有表格()Dim aTable As TableApplication.ScreenUpdating = FalseActiveDocument.DeleteAllEditableRanges wdEditorEveryoneFor Each aTable In ActiveDocument.TablesaTable.Range.Editors.Add wdEditorEveryoneNextActiveDocument.SelectAllEditableRanges wdEditorEveryoneActiveDocument.DeleteAllEditableRanges wdEditorEveryoneApplication.ScreenUpdating = True
End Sub

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

代码逻辑详解:

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

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

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

' 定义一个名为“选中所有表格”的子程序,用于执行选中文档中所有表格的操作
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

相关文章:

  • PostgreSQL数据库RPM方式安装详解
  • Python语法系列博客 · 第6期[特殊字符] 文件读写与文本处理基础
  • OCR技术与视觉模型技术的区别、应用及展望
  • 大学第一次笔记本清灰
  • 2.2/Q2,GBD数据库最新文章解读
  • 通过 Samba 服务实现 Ubuntu 和 Windows 之间互传文件
  • 单元测试的一般步骤
  • Linux操作系统--环境变量
  • PHP异常处理__Throwable
  • Vue 3 中将 ref 创建的响应式对象数据转换为普通(非响应式)的数据
  • 自动化测试相关协议深度剖析及A2A、MCP协议自动化测试应用展望
  • 基于大模型的下肢静脉曲张全流程预测与诊疗方案研究报告
  • [Swift]pod install成功后运行项目报错问题error: Sandbox: bash(84760) deny(1)
  • Django 实现服务器主动给客户端发送消息的几种常见方式及其区别
  • 医院科研科AI智能科研支撑平台系统设计架构方案探析
  • Java 动态代理教程(JDK 动态代理)(以RPC 过程为例)
  • 【java实现+4种变体完整例子】排序算法中【希尔排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • 从FPGA实现角度介绍DP_Main_link主通道原理
  • 【AIVS】OPENAIVS开源视频推理系统简介
  • Mermaid 是什么,为什么适合AI模型和markdown
  • 打造“朋友圈”,“淘书乐”为旧书找“新朋友”
  • 41岁知名学者陈昊因病骤然离世,北大再发讣告缅怀
  • 2025年度“沪惠保”今日开售:保费维持129元/人,进一步扩增国内外特药种类
  • 美股再遭重挫,标普500指数11个板块全线溃败
  • 上海市政府常务会议部署多措并举促进消费,提高居民收入,减轻家庭负担
  • “小时光:地铁里的阅读”摄影展开幕,嘉宾共话日常生活与阅读