作者: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文档批量替换工具相关推荐

  1. word文档批量生成工具(附免费软件)(按Excel表格内容自动替换内容生成文档)

    批量生成word文档是让人无比厌恶但有时又不得不做的事情.比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有"姓名"."学院"和"专业&qu ...

  2. word文档批量替换字体样式

    word文档中有谢地方可能需要批量替换字体样式,今天和大家分享如何批量转换字体样式. 首先我们先调用出替换功能,键盘按住Ctrl+H,或者直接点击工具栏中的[替换] 最简单的,如果想要替换相同内容,比 ...

  3. word文档批量合并工具

    用于批量合并word文档 #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ...

  4. Word文档批量生成工具分享

    Excel的数据记录可以轻松批量生成Word文档了. 使用标准的excel数据表+单据模板word文档轻松搞定,下面给大家介绍个简单的方法.以准考证模板为例: 第一步:模板及数据文件准备: 第二步: ...

  5. 亿愿Word文档批量多语言翻译---word文档翻译专家!几十种语言随意快速互译!可以生成中外文,中英文对照内容文档!

    亿愿Word文档批量多语言翻译-软件功能简介 [亿愿Word文档批量多语言翻译]采用目前最强大的.国际著名公司的谷歌翻译引擎,自动识别语言种类,把英文.日文.韩文.德文.法文.俄文等几十种外国语言的文 ...

  6. 如何将多个 Docx 格式 Word 文档批量转为 Doc 格式

    概要:前面我们介绍过常见的 Word 文档有多种格式,比如 Doc.Docx,并且详细介绍了如何批量将多个 Doc 格式的 Word 文档批量转为 Docx 格式文档,相信对大家都有一些的帮助.那 D ...

  7. word文档转化html 工具mammoth

    word文档转化html 工具mammoth 一.下载mammoth npm install mammoth 二.配置环境变量 npm成功之后会有一个node_modules文件,将node_modu ...

  8. 木木Word文档转图片工具

    刚刚写的Word文档转图片工具,转换效果非常好,字体清晰,表格也不会失真,支持保存为BMP.JPG格式. http://nj.onlinedown.net/soft/88598.htm

  9. word文档批量插入图片及其文件名

    word文档批量插入图片及其文件名-宏脚本处理 Sub PicWithCaption()Dim xFileDialog As FileDialogDim xPath, xFile As Variant ...

  10. PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片

    #PhpWord与GD 和图像处理 函数进行word文档数值替换以及合并插入图片 代码示例 代码如下(示例): public function test(){//读取模板$templateProces ...

最新文章

  1. 一个研发团队是如何坚持7年技术分享的?
  2. C 将长型整数转换为字符串
  3. 使用GridSearchCV和RandomizedSearchCV进行超参数调整
  4. Python 生成requirement 使用requirements.txt
  5. 数据仓库组件:HBase集群环境搭建和应用案例
  6. 深入解析C/C++的优缺点以及就业方向
  7. [转帖]Windows 上面IE的历史
  8. 相机模型与标定(十二)--opencv圆形标志点检测算法
  9. 零基础学启发式算法(5)-遗传算法 (Genetic Algorithm)
  10. C# int byte数组互转 int byte[]互转
  11. 工程控制论 理论概况
  12. matlab 中输入log就是ln吗?(ln就是log以e为底的对数)
  13. “不仅仅是土豆”精神
  14. 基于G6-Editor的流程图编辑器
  15. Lagrange乘子法与KTT条件
  16. java画笑脸_canvas 画笑脸
  17. VUE3 使用 Ant Design Vue 图标库的图标
  18. mysql 42000 报错_MySQL SQL Error: 1064, SQLState: 42000 错误
  19. long long类型
  20. java报表查询 跟 语句查询区别_Java报表FineReport在医院院长查询分析系统中有什么用...

热门文章

  1. mt管理器显示java_真正免root的MT管理器详细使用教程
  2. 海思Hi3798硬件设计,Hi3798 datasheet(2)参考资料
  3. leaflet地图之 获取经纬度
  4. visio业务流程图教学_Visio流程图入门
  5. springboot毕设项目基于springboot的小区旧物交易系统的设计与实现j8o94(java+VUE+Mybatis+Maven+Mysql)
  6. IM即时通讯加入“对方正在输入…”真的好吗?
  7. qgc地面站如何导入离线地图_【技术贴第三期】如何玩转离线地图?
  8. Visio2002、2003、2007下载地址整理 以及 相关网址链接
  9. Codeforces D. Genius‘s Gambit
  10. android平台的一款mud工具,论剑mud脚本