Word文档批量替换工具
作者:iamlaosong
日常工作中可能会碰到这样的情况,就是需要批量替换一些文件的内容,如合同、产品说明、ISO认证标准化文档(质量手册、程序文件、管理手册)、项目推广方案等,先做批量替换,再进行修改,可以节省大量时间。
本工具可以实现一键完成批量替换,只需按键前将要替换的内容输入表格当中。工具用VBA实现,主要是针对ISO认证标准化文档做的,即对多个文件做同样的替换。界面如下:
功能简单,实现起来也容易。也就是读取表格内容到数组,选择要替换的文件,然后逐个替换即可。
1、文件夹替换:点击按钮选择一个文件夹,工具对文件夹下所有Word文档进行替换,替换后的文件保留在当前文件夹下新建的new文件夹下,文件名和源文件相同。
2、文件替换:点击按钮后选择一个或多个Word文档,工具对对选中的文档进行替换,替换后的文件保留在当前文件夹下新建的new文件夹下,文件名和源文件相同。
本来想用Excel VBA做的(毕竟这个我比较熟),可是Excel VBA代码写完后,打开Word文档没问题,其他代码执行没问题,就是替换功能那部分代码执行了完不成替换,而同样的代码在Word VBA中却可以实现所需的功能,不知道问题出在哪儿。
核心代码如下:
1、读取表格内容:
'读取替换内容For k = 2 To 100tmp = ActiveDocument.Tables(1).Cell(k, 1)sFind(k) = Left(tmp, Len(tmp) - 2)tmp = ActiveDocument.Tables(1).Cell(k, 2)sRepl(k) = Left(tmp, Len(tmp) - 2)If sFind(k) = "" Then Exit ForNext kWordNo = k - 1
2、批量替换
If Dir(sPath & "\new", vbDirectory) = "" Then MkDir sPath & "\new"'开始替换For kk = 1 To FileNoTarget = sPath & "\" & myFile(kk)Debug.Print TargetDocuments.Open TargetFor k = 2 To WordNoSelection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = sFind(k).Replacement.Text = sRepl(k).Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = False'执行替换.Execute Replace:=wdReplaceAllEnd WithNext kActiveDocument.SaveAs2 FileName:=sPath & "\new\" & myFile(kk)'ActiveDocument.SaveActiveDocument.CloseNext kkMsgBox "共有" & FileNo & "个文件替换完毕!"
感兴趣朋友可以下载试试:Word文档批量替换工具.doc
补记:
后来发现,Excel之所以不行,是因为Excel环境下wdReplaceAll、wdFindContinue都是空值。而这些参数为空值,是因为我们没有引用Word对象,引用一下就不是空值了(如果把wdReplaceAll、wdFindContinue等常量换成其值2、1,不引用也可以),如下图:
Excel下面的关键代码如下:
'查找并替换For k = 1 To StrnoWith docApp.Selection.Find.ClearFormatting.Text = arrStr(k, 1).Replacement.Text = arrStr(k, 2).Forward = True.Wrap = wdFindContinue.MatchWildcards = FalseEnd WithdocApp.Selection.Find.Execute Replace:=wdReplaceAllNext k
注意:docApp是Word应用对象,即:Set docApp = CreateObject("Word.Application")
====================================================
补充强调一下:工具可以用于docx类型,如果选择文件夹替换的话,会包括docx文件;如果选择文件替换的话,可以把选择类型改成所有文件(*.*)就行了。文件替换时可以按Ctrl键多选。
Word文档批量替换工具相关推荐
- word文档批量生成工具(附免费软件)(按Excel表格内容自动替换内容生成文档)
批量生成word文档是让人无比厌恶但有时又不得不做的事情.比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有"姓名"."学院"和"专业&qu ...
- word文档批量替换字体样式
word文档中有谢地方可能需要批量替换字体样式,今天和大家分享如何批量转换字体样式. 首先我们先调用出替换功能,键盘按住Ctrl+H,或者直接点击工具栏中的[替换] 最简单的,如果想要替换相同内容,比 ...
- word文档批量合并工具
用于批量合并word文档 #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ...
- Word文档批量生成工具分享
Excel的数据记录可以轻松批量生成Word文档了. 使用标准的excel数据表+单据模板word文档轻松搞定,下面给大家介绍个简单的方法.以准考证模板为例: 第一步:模板及数据文件准备: 第二步: ...
- 亿愿Word文档批量多语言翻译---word文档翻译专家!几十种语言随意快速互译!可以生成中外文,中英文对照内容文档!
亿愿Word文档批量多语言翻译-软件功能简介 [亿愿Word文档批量多语言翻译]采用目前最强大的.国际著名公司的谷歌翻译引擎,自动识别语言种类,把英文.日文.韩文.德文.法文.俄文等几十种外国语言的文 ...
- 如何将多个 Docx 格式 Word 文档批量转为 Doc 格式
概要:前面我们介绍过常见的 Word 文档有多种格式,比如 Doc.Docx,并且详细介绍了如何批量将多个 Doc 格式的 Word 文档批量转为 Docx 格式文档,相信对大家都有一些的帮助.那 D ...
- word文档转化html 工具mammoth
word文档转化html 工具mammoth 一.下载mammoth npm install mammoth 二.配置环境变量 npm成功之后会有一个node_modules文件,将node_modu ...
- 木木Word文档转图片工具
刚刚写的Word文档转图片工具,转换效果非常好,字体清晰,表格也不会失真,支持保存为BMP.JPG格式. http://nj.onlinedown.net/soft/88598.htm
- word文档批量插入图片及其文件名
word文档批量插入图片及其文件名-宏脚本处理 Sub PicWithCaption()Dim xFileDialog As FileDialogDim xPath, xFile As Variant ...
- PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片
#PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片 代码示例 代码如下(示例): public function test(){//读取模板$templateProces ...
最新文章
- 一个研发团队是如何坚持7年技术分享的?
- C 将长型整数转换为字符串
- 使用GridSearchCV和RandomizedSearchCV进行超参数调整
- Python 生成requirement 使用requirements.txt
- 数据仓库组件:HBase集群环境搭建和应用案例
- 深入解析C/C++的优缺点以及就业方向
- [转帖]Windows 上面IE的历史
- 相机模型与标定(十二)--opencv圆形标志点检测算法
- 零基础学启发式算法(5)-遗传算法 (Genetic Algorithm)
- C# int byte数组互转 int byte[]互转
- 工程控制论 理论概况
- matlab 中输入log就是ln吗?(ln就是log以e为底的对数)
- “不仅仅是土豆”精神
- 基于G6-Editor的流程图编辑器
- Lagrange乘子法与KTT条件
- java画笑脸_canvas 画笑脸
- VUE3 使用 Ant Design Vue 图标库的图标
- mysql 42000 报错_MySQL SQL Error: 1064, SQLState: 42000 错误
- long long类型
- java报表查询 跟 语句查询区别_Java报表FineReport在医院院长查询分析系统中有什么用...
热门文章
- mt管理器显示java_真正免root的MT管理器详细使用教程
- 海思Hi3798硬件设计,Hi3798 datasheet(2)参考资料
- leaflet地图之 获取经纬度
- visio业务流程图教学_Visio流程图入门
- springboot毕设项目基于springboot的小区旧物交易系统的设计与实现j8o94(java+VUE+Mybatis+Maven+Mysql)
- IM即时通讯加入“对方正在输入…”真的好吗?
- qgc地面站如何导入离线地图_【技术贴第三期】如何玩转离线地图?
- Visio2002、2003、2007下载地址整理 以及 相关网址链接
- Codeforces D. Genius‘s Gambit
- android平台的一款mud工具,论剑mud脚本