实用VBA:17.大量word文件中的文本内容进行批量替换

1.需求场景

在工作中可能会遇到需要对大量word文件中的文字内容进行批量替换的情况。相比excel的批量处理,个人感觉word文档中由于包含大量样式信息,批处理时总感觉有顾虑。一者担心影响了文档的格式,误修改了文档的样式,那后果……整过文档的小伙伴都懂的;二者担心批处理不全面,例如公式、表格、图表或者文本框。

范例文件
需求范例:需要把每个文件中的”李四“统一替换为”张三“

2.解决思路

这次因为工作需要,查到了一位大佬贡献的方法,由于文中代码是贴的图,自己敲了出来,并稍作修改,测试通过,分享给大家。基本思路是先将待处理的文件统一放在同一文件夹中,使用VBA选择待处理文件目录,遍历文件夹中所有文件;通过input对话框让用户输入被替换文本和替换文本的内容;使用document对象的content.find方法进行查找和替换。

3.VBA实现

可以定义一个sub直接运行,也可以加一个按钮,将代码写到按钮的click方法中。

Private Sub CommandButton1_Click()'关闭屏幕刷新Application.ScreenUpdating = False'定义变量Dim myFile$, myPath$, i%, myDoc As Object, myAPP As Object, txt$, Re_txt$'设置应用对象,建立临时进程Set myAPP = New Word.Application'显示选择文件夹对话框With Application.FileDialog(msoFileDialogFolderPicker).Title = "选择目标文件夹"If .Show = -1 Then'读取选择的文件路径myPath = .SelectedItems(1)ElseExit SubEnd IfEnd With'文件夹目录和文件完整路径myPath = myPath & ""myFile = Dir(myPath & "\*.docx")'获取被替换的文字txt = InputBox("需要替换的文字:")'获取替换文件Re_txt = InputBox("替换成:")'显示打开文档myAPP.Visible = True '是否显示打开文档'循环处理文件夹中的全部文件Do While myFile <> "" '文件不为空'打开文件Set myDoc = myAPP.Documents.Open(myPath & "\" & myFile)'判断文件是否受保护,仅对未受保护的文件有效If myDoc.ProtectionType = wdNoProtection Then'查找替换With myDoc.Content.Find.Text = txt.Replacement.Text = Re_txt.Forward = True.Wrap = 2.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = False.Execute Replace:=2End WithEnd If'设置文件窗口状态,避免再次打开时被隐藏Application.WindowState = wdWindowStateNormal'保存并关闭文档myDoc.SavemyDoc.ClosemyFile = DirLoop'关闭临时进程myAPP.Quit'打开屏幕更新Application.ScreenUpdating = True'输出提示信息MsgBox ("全部替换完毕!")End Sub

4.运行效果

按钮控件
按钮控件

选择文件夹
选择文件夹

输入需要被替换掉的文字
输入需要被替换掉的文字

输入替换文字
输入替换文字

程序运行结束,批量替换完成
程序运行结束,批量替换完成

查看替换效果
查看替换效果

果不出老衲所料,从实际运行效果看,正文、表格、公式中的内容可以正常完成替换,文本框和形状(形状本质上就是一种特定的文本框)中的文本用这种方法无法实现批量替换。

使用时还是要谨慎,用过之后还要手工检查疗效。不过毕竟能完成一部分,聊胜于无吧。

如果不是非用word文档不可,还是建议尽量用excel表格处理报表之类的文档,便于后期批量处理。

【参考代码来源】https://jingyan.baidu.com/article/647f011576aad23e2148a885.html

喜欢的话欢迎关注、点赞、转发或评论交流!

点赞富三代,分享美一生! ^|^

往期列表

实用VBA:1.向下填充空白单元格

实用VBA:2.隔行插入空白行

实用VBA:3.向下合并空白单元格

实用VBA:4.按列拆分工作表

实用VBA:5.批量汇总工作簿、合并工作表

实用VBA:6.一键批量提取文件名和存储路径 

实用VBA:7.按文件列表一键汇总excel工作簿 

实用VBA:8.一键输出多表格为单独文件

实用VBA:9.使用Excel批量套模板,一键输出多个工作表

实用VBA:10.用VBA向Excel文件中自动插入图片 

实用VBA:11.用Excel自动生成商品调拨单

实用VBA:12.用VBA将txt文本文件导入Excel表格 

实用VBA:13.Excel数据批量套模板输出pdf文件

实用VBA:14.在二维数组中查找特定元素 

实用VBA:15 一键批量汇总工作表的更优方法 

实用VBA:16.一键批量删除工作表

(佛系更新中……)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643921.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【操作系统】实验五 添加内核模块

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

使用trace工具分析Mysql如何选择索引

背景说明 工作中,可能会遇到执行一个SQL,明明有索引,但是采用explain分析后发现执行结果并未走索引。甚至还有部分SQL语句相同就只是查询条件不一样也会出现有的走索引,有的不走索引情况。比如: 我的示例环境有个employees表,并有个idx_name_age_position的联合索引…

纯命令行在Ubuntu中安装qemu的ubuntu虚拟机,成功备忘

信息总体还算完整&#xff0c;有个别软件更新了名字&#xff0c;所以在这备忘一下 1. 验证kvm是否支持 ________________________________________________________________ $ grep vmx /proc/cpuinfo __________________________________________________________________…

40G QSFP+ ER4光模块:高效稳定的数据传输解决方案

随着网络技术的不断发展&#xff0c;数据传输的速度和效率成为了网络流畅度和稳定性的关键因素。40G QSFP ER4光模块作为最新一代的光纤传输模块&#xff0c;凭借其高速度、高效率、长距离传输等特点&#xff0c;正逐渐在数据中心、企业网络等领域得到广泛应用。 一、40G QSFP…

离线编译 onnxruntime-with-tensortRT

记录为centos7的4090开发机离线编译onnxruntime的过程&#xff0c;因为在离线的环境&#xff0c;所以踩了很多坑。 https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html 这里根据官网的推荐安装1.15 版本的onnx 因为离线环境&#xff0c;所以很…

1. Matplotlib的Figure基础概念

1. Matplotlib的Figure基础概念 一 **角色和作用**二 **类比&#xff1a;**三 **基本使用示例** Matplotlib是一个用于绘制二维图形的Python库&#xff0c;广泛应用于数据可视化领域。其灵活性和强大的功能使得用户能够轻松创建各种类型的图表&#xff0c;包括折线图、散点图、…

RectMask2D的合批情况验证

1.经过实际测试&#xff0c;RectMask2D在裁剪区域完全相同且位置完全重合的情况下能够合批 但是当RectMask2D位置不重合时&#xff0c;就不能合批 注意&#xff0c;虽然此处被RectMask2D裁剪了&#xff0c;但是有部分是被渲染的&#xff0c;在计算深度时属于需要渲染…

Labview for循环精讲

本文详细介绍Labview中For循环的使用方法&#xff0c;从所有细节让你透彻的看明白For循环是如何使用的&#xff0c;如果有帮助的话记得点赞加关注~ 1. For循环结构 从最简单的地方讲起&#xff0c;一个常用的for循环结构是由for循环结构框图、循环次数、循环计数(i)三部分组成…

动静态库的理解、制作、使用。

一.动静态库的理解。 1.什么是库&#xff1f; 代码是无穷无尽的&#xff0c;当程序猿在写一些项目时&#xff0c;未必所有代码亲历亲为&#xff0c;他们可以在网上寻找大佬写过的一些有关需求的代码&#xff0c;这些代码可以让他们拿过来直接使用&#xff0c;而省去了许多精力…

回归问题波士顿房价预测

线性回归API sklearn.linear_model.LinearRegression(fit_interceptTrue) 正规方程优化参数&#xff1a;fit_intercept&#xff0c;是否计算偏置属性&#xff1a;LinearRegression.coef_ &#xff08;回归系数&#xff09; LinearRegression.intercept_&#xff08;偏置&…

STL第四讲

第四讲 万用Hash Function 左侧的是设计为类并重载调用运算符&#xff0c;右侧是一般函数的形势&#xff1b; 但是右侧形势在创建容器时更麻烦&#xff1b; 具体例子&#xff1a; 第三种形势&#xff1a;struct hash 偏特化形式 tuple 自C03引入&#xff1b; 关于源码解读的…

ASCB1系列一体式智能微型断路器 智慧空开-安科瑞 蒋静

1. 概述 ASCB1系列智能微型断路器(一体式)&#xff08;以下简称智能微型断路器&#xff09;应用于户内建筑物及类似场所的工业、商业、民用建筑及基础设施等领域低压终端配电网络。智能微型断路器对用电线路的关键电气参数&#xff0c;如电压、电流、功率、温度、漏电、能耗等…

北美“水务巨头”遭遇勒索软件攻击,账单支付系统被破坏

近日&#xff0c;威立雅北美公司披露了一起勒索软件攻击事件&#xff0c;此次攻击影响了其市政水务部门的部分系统&#xff0c;并破坏了其账单支付系统。 在发现攻击后&#xff0c;该公司立即采取了防御措施&#xff0c;并暂时关闭了部分系统&#xff0c;以避免漏洞造成更大的…

Broadcom交换芯片56620架构

文章目录 架构1.系统逻辑视图2.逻辑芯片视图3.芯片框图4.MIIM&#xff08;Medium Independent Interface Management&#xff09;5.交换结构6.CAP 架构 1.系统逻辑视图 Ingress Chip作用&#xff1a; 解析报文128字节的头部&#xff08;MMU&#xff08;Memory Management Uni…

JavaWeb之开发介绍 --黑马笔记

什么是 Web &#xff1f; Web&#xff1a;全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站。 Web 网站的工作流程 上图解释&#xff1a; 当你在浏览器中输入网址或点击一个链接时&#xff0c;浏览器会向前端服务器发起请求&…

C++进阶--哈希的应用之位图和布隆过滤器

哈希的应用之位图和布隆过滤器 一、位图1.1 位图&#xff08;bitset&#xff09;的提出1.2 位图的概念1.3 位图的模拟实现1.3.1 位图的底层结构1.3.2 位图的成员函数1.3.2.1 位图的构造1.3.2.2 位图的插入&#xff1a;set1.3.2.3 位图的删除&#xff1a;reset1.3.2.4 位图的查找…

头疼管理 Postgres Schema?开源工具大盘点!

Postgres 前不久荣获了 DB-Engines 2023 年度数据库的桂冠&#xff0c;其生态也在蓬勃发展&#xff0c;不过&#xff0c;迁移 Postgres 数据库 schema 仍旧令人头疼&#xff0c;不是一件好办的事儿。 本文中&#xff0c;我们盘点几个好用的用于 Postgres 的开源数据库 schema 迁…

UDS Flash刷写流程介绍

一、刷写流程介绍 1.1刷写包含以下三个步骤&#xff1a;预编程&#xff0c;编程&#xff0c;后编程 1.2预编程步骤 此步骤是保证能够正常进入编程&#xff08;10 02&#xff09;会话下。 &#xff08;1&#xff09;如果无特殊要求&#xff0c;只保证刷写能够正常进行&#x…

Fluent 技巧:查找并修改隐藏的设置

绝大部分 Fluent 设置可以通过图形界面或者命令行内置的命令按照提示处理。少部分设置因为种种原因被隐藏&#xff0c;需要在命令行中使用 scheme 语句进行处理。例如关闭温度的二阶梯度&#xff0c;需要在命令行中完整输入如下 scheme 语句&#xff08;包括英文括号部分&#…

编译安装Nginx健康检查模块和echo模块

1、编译安装Nginx健康检查模块和echo模块 -rw-r--r-- 1 root root 482 1月 20 09:51 1.sh -rw-------. 1 root root 1060 11月 26 09:12 anaconda-ks.cfg -rw-r--r-- 1 root root 370929 1月 16 18:02 bash.txt drwxrwxr-x 5 root root 174 8月 1 2022 ec…