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

利用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、代码编辑完成后,开发者工具→运行宏,选择对应名称,运行

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 【Lua】Redis 自增并设置有效期
  • spring-cloud-stream学习
  • Halcon案例(二):C#联合Halcon回形针以及方向
  • 【idea】调试篇 idea调试技巧合集
  • 第五部分:第二节 - Node.js 核心模块:厨房里的基本工具
  • 显示的图标跟UI界面对应不上。
  • 无人机数据处理与特征提取技术分析!
  • Thrust库中的Gather和Scatter操作
  • 【Linux】第十六章 分析和存储日志
  • uniapp vue 沉浸式窗体如何获取并排除外部手机浏览器底部菜单栏工具栏高度
  • sqli—labs第六关——双引号报错注入
  • 小白学习java第18天(上):spring
  • 【C++】17. 多态
  • 大型企业数据治理与数据资产化:数字化转型的炼金术革命
  • 如何解决电脑蓝屏错误代码:Oxc0000098
  • 鸿蒙OSUniApp开发支持多语言的国际化组件#三方框架 #Uniapp
  • elementUI调整滚动条高度后与固定列冲突问题解决
  • 高海拔和远距离的人员识别:面部、体型和步态的融合
  • Java 源码 HashMap源码分析
  • PROE 转 STP 全攻略:软件实操、在线转换与问题解决
  • 一个多月来上海交大接连“牵手”三区,在这些方面进行区校合作
  • 山东市监局回应“盒马一批次‘无抗’鸡蛋抽检不合格后复检合格”:系生产商自行送检
  • 融创中国:境外债务重组计划聆讯定于9月15日召开
  • 习近平同巴西总统卢拉共同出席合作文件签字仪式
  • 中国女足将于5月17日至6月2日赴美国集训并参加邀请赛
  • 吉林:消纳绿电,“氢”装上阵