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

利用vba替换word中多个表格,相邻单元格的文字

目录

  • 一、效果图
    • 1、替换前
    • 2、替换后
  • 二、敲代码
    • 1、开发者工具→vba编辑器,点击插入模块
    • 2、键入以下代码
    • 3、代码编辑完成后,开发者工具→运行宏,选择对应名称,运行

一、效果图

标题估计没说明白,上图

1、替换前

替换前

2、替换后

如下图目标达成
替换后

二、敲代码

1、开发者工具→vba编辑器,点击插入模块

在这里插入图片描述

2、键入以下代码

Sub ReplaceTenConsecutiveCells()Dim tbl As Table, targetCells As RangeDim oldGroups() As Variant, newGroups() As VariantDim i As Long, j As Long, k As Long, m As Long' ====== 配置区 ======' 定义旧值组合 vs 新值组合(必须一一对应)oldGroups = Array(Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10"), Array("B1", "B2", "B3", "", "", "", "", "", "", ""))newGroups = Array( _Array("New1", "New2", "New3", "New4", "New5", "New6", "New7", "New8", "New9", "New10"), _Array("替换1", "替换2", "替换3", "", "", "", "", "", "", "") _)'Const HIGHLIGHT_COLOR As Long = RGB(0, 176, 80) ' 标记颜色(绿色)' ====== 配置结束 ======Application.ScreenUpdating = FalseFor Each tbl In ActiveDocument.TablesFor i = 1 To tbl.Rows.Count' 动态计算可用列范围For j = 1 To tbl.Columns.Count - 9 ' 确保有连续10列' 提取连续10单元格内容(清理结尾符)Dim currentGroup(9) As StringFor k = 0 To 9On Error Resume Next ' 跳过合并单元格错误currentGroup(k) = Replace(tbl.cell(i, j + k).Range.Text, Chr(13) & Chr(7), "")On Error GoTo 0Next k' 遍历所有预设规则进行匹配For k = 0 To UBound(oldGroups)Dim isMatch As BooleanisMatch = TrueFor m = 0 To 9' 空字符串表示跳过该位置匹配If oldGroups(k)(m) <> "" And currentGroup(m) <> oldGroups(k)(m) ThenisMatch = FalseExit ForEnd IfNext m' 执行替换并标记If isMatch ThenFor m = 0 To 9On Error Resume Next ' 跳过合并单元格写入tbl.cell(i, j + m).Range.Text = newGroups(k)(m)tbl.cell(i, j + m).Shading.BackgroundPatternColor = RGB(0, 176, 80)On Error GoTo 0Next mExit For ' 匹配成功即跳出循环End IfNext kNext jNext iNext tblApplication.ScreenUpdating = TrueMsgBox "已处理 " & UBound(oldGroups) + 1 & " 组规则,替换完成!"
End Sub

一些说明
在这里插入图片描述

3、代码编辑完成后,开发者工具→运行宏,选择对应名称,运行

在这里插入图片描述

在这里插入图片描述

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

相关文章:

  • 用Array.from实现创建一个1-100的数组
  • 探索自我重复的奇妙之旅--递归
  • 最小区域法求平面度及八种算法思路
  • AI降重率工具推荐:提升论文原创度的利器
  • windows文件共享另一台电脑资源管理器网络文件夹无法找到机器
  • AI Agent开发第66课-彻底消除RAG知识库幻觉-带推理的RAG
  • 设计模式(9)——创建型模式之工厂方法
  • FlashInfer - SparseAttention(稀疏注意力)只计算部分有意义的注意力连接,而非全部 token 对
  • x-IMU matlab zupt惯性室内定位算法
  • 微服务调试问题总结
  • 数据预处理之数据平滑处理详解
  • 学习黑客蓝牙技术详解
  • 在K8S集群中部署EFK日志收集
  • 【LINUX操作系统】线程同步与互斥
  • 《Python星球日记》 第72天:问答系统与信息检索
  • VCS758电流传感器芯片:国产化替代与高精度电流检测解决方案
  • Elasticsearch索引设计与调优
  • 数字IC后端设计实现 | 如何自动删除Innovus 中冗余的hold buffer?
  • 季报中的FPGA行业:U型反转,春江水暖
  • 高压差分探头的阻抗选择
  • Apollo学习——键盘控制速度
  • mapreduce
  • AI大模型从0到1记录学习 linux day23
  • 深入理解SpringBoot中的SpringCache缓存技术
  • deepseek梳理java高级开发工程师微服务面试题-进阶版
  • 嵌入式中深入理解C语言中的指针:类型、区别及应用
  • 【​​HTTPS基础概念与原理​】对称加密与非对称加密在HTTPS中的协作
  • cadence Allegro PCB测量时 同时显示两种单位(mil mm)的设置方法
  • 大型企业数据治理与数据资产化:从技术债到价值锚的演进之路
  • elasticsearch硬件与资源配置优化