当前位置: 首页 > 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

http://www.xdnf.cn/news/32023.html

相关文章:

  • ETF价格相关性计算算法深度分析
  • Java Stream 复杂场景排序与分组技术解析与示例代码
  • 蓝桥杯 蜗牛 动态规划
  • 遨游科普:防爆平板是指什么?有哪些应用场景?
  • 使用vue2技术写了一个纯前端的静态网站商城-鲜花销售商城
  • javassist
  • Python concurrent.futures模块的ProcessPoolExecutor, ThreadPoolExecutor类介绍
  • 在 Node.js 中使用原生 `http` 模块,获取请求的各个部分:**请求行、请求头、请求体、请求路径、查询字符串** 等内容
  • Python爬虫实战:获取网易新闻数据
  • Windows系统安装`face_recognition`
  • 2. ubuntu20.04 和VS Code实现 ros的输出 (C++,Python)
  • DeepSeek与Napkin:信息可视化领域的创新利器
  • [matlab]南海地形眩晕图代码
  • Github 2025-04-19Rust开源项目日报 Top10
  • Prompt-Tuning 提示词微调
  • 机器学习核心算法全解析:从基础到进阶的 18 大算法模型
  • MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
  • 10软件测试需求分析案例-查询学习信息
  • 详讲Linux下进程等待
  • Go-zero框架修改模版进行handler统一响应封装
  • 手撕 简易HashMap
  • YOLO11改进-Backbone-使用MobileMamba替换YOLO backbone 提高检测精度
  • 在服务器上部署MinIO Server
  • JMeter实现UI自动化测试的完整方案
  • 配置管理与系统文档
  • MyImgConverter:图片批量处理工具
  • 智能提示语全周期优化系统:云原生架构设计与工程实践
  • LPDDR中读操作不存在Additive Latency(AL)的技术思考
  • opencv 最近邻插值法的原理
  • 集合框架(详解)