背景:朋友工作中有多个Word文件,每次做更新时都要更新文档内的日期,每次手工更改都比较耗费时间,加上公司电脑不能装未授权的软件,且只支持英文,于是就根据这个需求,参考一些网上的代码,并做了一些升级,增加了界面、备份等功能,制作出这个VBA。下面是几个主要部分的VBA代码。

图1 VBA结构图

图2 窗体界面

'窗体界面
Private Sub CommandButton1_Click() 'Replace按钮
Call Start_replace
Unload Me
End SubPrivate Sub CommandButton2_Click() 'Clear按钮
'CheckBox1.Value = False
'CheckBox2.Value = False
'CheckBox3.Value = False
'CheckBox4.Value = False
TextBox1.Value = ""
TextBox2.Value = ""
End Sub
'调用窗体界面(模块1)
Sub Replace_text()
UserForm1.Show
End Sub
'开始替换(模块2)
Public Sub Start_replace()
Application.ScreenUpdating = False  '关闭屏幕闪
Dim myFile$, myPath$, backup_file, Backup_path, i%, myDoc As Object, myBackup As Object, myAPP As Object, txt$, Re_txt$
Set myAPP = New Word.Application
With Application.FileDialog(msoFileDialogFolderPicker) '允许用户选择一个文件夹.Title = "选择目标文件夹"If .Show = -1 ThenmyPath = .SelectedItems(1) '读取选择的文件路径ElseExit SubEnd If
End With
myPath = myPath & ""MatchCase_Value = UserForm1.CheckBox1.Value
MatchWholeWord_Value = UserForm1.CheckBox2.Value
MatchByte_Value = UserForm1.CheckBox3.Value
MatchWildcards_Value = UserForm1.CheckBox4.Value
Backup = UserForm1.CheckBox5.Value
Be_replaced = UserForm1.TextBox1.Value
Replace_with = UserForm1.TextBox2.Valuetxt = Be_replaced
Re_txt = Replace_with
myAPP.Visible = True '是否显示打开文档'Backup
If (Backup = True) ThenBackup_path = "E:\backup\"backup_file = Dir(myPath & "\*.doc*")Do While backup_file <> ""Set myBackup = myAPP.Documents.Open(myPath & "\" & backup_file)myBackup.SaveAs "E:\backup\" & backup_filemyBackup.Closebackup_file = DirLoop
End If'Replace
myFile = Dir(myPath & "\*.doc*")
Count = 0
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 = MatchCase_Value.MatchWholeWord = MatchWholeWord_Value.MatchByte = MatchByte_Value.MatchWildcards = MatchWildcards_Value.MatchSoundsLike = False.MatchAllWordForms = False.Execute Replace:=2End WithEnd IfmyDoc.SavemyDoc.ClosemyFile = DirCount = Count + 1
Loop
myAPP.Quit '关掉临时进程
Application.ScreenUpdating = True
If (Backup = True) ThenMsgBox (Count & " documents replaced successfully and backup in " & Backup_path)
ElseIf (Backup = False) ThenMsgBox (Count & " documents replaced successfully!")
End If
End Sub

图3 运行结果

  • 不足之处:目前还只能对一个文件夹里的全部word批量替换,不能进行选择;不能实时查看到匹配到内容,所以建议替换时将文件拷贝到临时文件夹再进行替换。(尽管有备份功能)
  • 本文Word下载地址

链接:https://pan.baidu.com/s/1ZsrfjK3GY4cLOlkm-h12rQ
提取码:mup5

利用VBA批量替换多个Word内容(带窗体界面/支持备份、大小写、通配符等功能)相关推荐

  1. 如何利用VBA批量更改Excel文件的内容

    心得(5):利用VBA批量更改Excel文件的内容 问题:因为接受的所有Excel文件都是相同格式的,但是有个单元格的内容就是需要,主办方来更改,如下所示: 获奖级别,得由主办方来更改,但是如果一个一 ...

  2. linux中替换文件中的内容,linux下批量替换文件中的内容linux操作系统 -电脑资料...

    对于单个文件,使用sed命令很容易做到, grep命令可以查找单个文件或文件夹下文件中的内容,使用参数"r"或"-R"可以递归查找指定文件夹下的所有文件:参数& ...

  3. python文本筛选多个word_用Python批量替换多个Word文件中的文字

    实例14:用Python批量替换多个Word文件中的文字 公众号"Python操作Office软件高效工作" 29 人赞同了该文章 我们在实例7中批量生成了采购合同.但是假设现在我 ...

  4. word批量替换多组文字 python_实例14:用Python批量替换多个Word文件中的文字

    我们在实例7中批量生成了采购合同.但是假设现在我方的公司名由"ABC商贸有限公司"变成了"ABC贸易有限公司",那我们就需要去每份合同中对应位置进行替换.当然也 ...

  5. Word中的通配符随意组合进行批量替换或删除某些内容

    长文档需要批量修改或删除某些内容的时候,我们可以利用Word中的通配符来搞定这一切,当然,前提是你必须会使用它.通配符的功能非常强大,能够随意组合替换或删除我们定义的规则内容,下面易老师就分享一些关于 ...

  6. 利用VBA批量删除Excel中的中文/英文/数字或者替换中英文符号

    ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 在Excel中经常会遇到去除所有的中文,英文或者数字等情况.但是由于Excel并不支持一次替换所有的中文,英文,数字等,所以有些 ...

  7. 怎么将 Word、PPT、PDF 中的第一页、最后一页以及其它指定页批量替换成新的内容?

    概要:在我们日常办公中,经常会碰到需要替换文档中的某一页或者某几页的功能,「我的ABC软件工具箱」就实现了批量替换指定页的功能,可以轻松实现对 Word.PPT.PDF 文件的第一页.最后一页以及其他 ...

  8. 多个word vba批量替换文字(一个文件夹)

    多个word批量替换word文字! Sub 替换N个word文档()Dim Dm As DocumentDim MyPath As StringDim MyName As StringDim N As ...

  9. 怎样在word中批量替换文字?Word替换文字这一招你会吗?

    平时我们在编辑word文档的时候,经常会遇到将文档中的某一个文字或者是数字替换成别的内容,很多人想到的方法就是一个字一个字的找,之后进行更改,这样会很耽误我们的时间,如果你的文档内容过多的话难道你也会 ...

最新文章

  1. 什么样的域名利于网站SEO优化?
  2. 安装server 2012 时提示输入的密码不满足网络或组管理员设置的密码复杂度
  3. Unity NGUI 3.0.4版本 制作网络版斗地主
  4. 出色性能服务器,浪潮服务器:演绎出色传输与存储性能
  5. STM32F4 HAL库开发 -- 串口
  6. python进程数上限_python-使用multiprocessing.Process并发进程数最多
  7. 使用PreloadJS加载图片资源
  8. 重庆邮电大学计算机科学与技术培养方案,重庆邮电大学计算机科学与技术学院.doc...
  9. 认识安全测试之SQL注入
  10. 多智能体强化学习—QMIX
  11. linux读写磁盘文件寿命,linux下TF卡测试寿命的测试程序编写
  12. ASP程序加密解密方法全面解析
  13. iOS - 解决Warning: Attempt to present which is already presenting
  14. cad拉伸命令怎么用_如何用AutoCAD搞定三维斜齿轮
  15. 几百块的投影仪靠谱吗?性能怎么样?
  16. 微信中提示浏览器打开网址链接如何解决
  17. 2019 - 02 typescript的学习(结合cocos creator)
  18. 如何正确使用物业安全巡检系统
  19. Hive错误之 Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误分析
  20. 苹果招聘人手继续改善Siri功能

热门文章

  1. angular 解决闪烁问题_angularjs-ng-cloak 解决闪屏问题
  2. js 将换行符转换为逗号并去掉尾部逗号
  3. 深入浅析TCP/IP——TCP/IP五层模型
  4. 百人验厂团队“全军出击”,京东拼购抢占品质决胜点
  5. 【转载】--CSDN中如何转载文章
  6. 广东省高校人工智能产教融合院长研讨会召开,校企协同探索AI教育新范式
  7. 华为P8正式发布 售价分别为549欧元和649欧元
  8. win10搭建本地文件服务器,windows10本地服务器
  9. 计算机企业化管理的事业单位有哪些,事业单位有哪些?分别是什么职业?
  10. (附源码)计算机毕业设计JavaJava毕设项目钢材商贸公司网络购销管理系统