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

这篇具有很好参考价值的文章主要介绍了实用VBA:17.大量word文件中的文本内容进行批量替换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.需求场景

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

实用VBA:17.大量word文件中的文本内容进行批量替换,VBA,办公自动化,办公小技巧,microsoft,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)

        Else

            Exit Sub

        End If

    End 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:=2

            End With

        End If

        '设置文件窗口状态,避免再次打开时被隐藏

        Application.WindowState = wdWindowStateNormal

        '保存并关闭文档

        myDoc.Save

        myDoc.Close

        myFile = Dir

    Loop

     '关闭临时进程

    myAPP.Quit

    '打开屏幕更新

    Application.ScreenUpdating = True

    '输出提示信息

    MsgBox ("全部替换完毕!")

End Sub

4.运行效果

实用VBA:17.大量word文件中的文本内容进行批量替换,VBA,办公自动化,办公小技巧,microsoft,word,经验分享
按钮控件
实用VBA:17.大量word文件中的文本内容进行批量替换,VBA,办公自动化,办公小技巧,microsoft,word,经验分享
选择文件夹
实用VBA:17.大量word文件中的文本内容进行批量替换,VBA,办公自动化,办公小技巧,microsoft,word,经验分享
输入需要被替换掉的文字
实用VBA:17.大量word文件中的文本内容进行批量替换,VBA,办公自动化,办公小技巧,microsoft,word,经验分享
输入替换文字
实用VBA:17.大量word文件中的文本内容进行批量替换,VBA,办公自动化,办公小技巧,microsoft,word,经验分享
程序运行结束,批量替换完成
实用VBA:17.大量word文件中的文本内容进行批量替换,VBA,办公自动化,办公小技巧,microsoft,word,经验分享
查看替换效果

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

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

如果不是非用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.一键批量删除工作表

(佛系更新中……)文章来源地址https://www.toymoban.com/news/detail-822167.html

到了这里,关于实用VBA:17.大量word文件中的文本内容进行批量替换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VBA下载二进制文件,文本读写

    这里使用了vba如下两个对象: Microsoft.XMLHTTP :文件读写,可读写二进制,可指定编码,对于utf-8编码文本文件使用FSO的TextStream对象打开,读取到的内容可能会出现乱码,可以使用该对象打开;前期绑定添加引用: Microsoft ActiveX Data Objects 2.8 Microsoft.XMLHTTP :发送请求并获得返回,

    2024年02月16日
    浏览(66)
  • VBA系列技术资料MF33:VBA_将文本文件转换为Excel

    【分享成果,随喜正能量】一心热枕对待生活,静静的安抚自己内心的急迫和焦虑,你人生的好运,常常在你沉醉于生活时悄悄临门的。。 我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程

    2024年02月13日
    浏览(48)
  • Java poi之word文本图片内容提取

    应公司需求,需实现以下功能 word文本内容的替换; word文本内容的提取; word文档中图片的提取存放 此文章将使用Apache POI实现Word文档中文本内容及图片的提取; Apache POI 是基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)处理各种文件格式的开源项目。

    2024年02月10日
    浏览(53)
  • Java POI导出富文本的内容到word文档

    当创建使用富文本编辑器,操作完的数据,传输到后台都是带有html标签的。 如:h1标题头/h1h2第二个标题/h2a href=\\\"www.baidu.com\\\"百度搜索/a 我们想把富文本数据转换为Word内容。 Word是完全支持html标签的,但是我们获取到的富文本内容并不是完整的html代码,所有我们需要先补全

    2024年02月09日
    浏览(49)
  • 技术分享:PHP读取TXT文本内容的五种实用方法

    在Web开发中,我们经常需要读取和处理文本文件。PHP作为一种流行的服务器端脚本语言,提供了多种方法来读取TXT文本内容。本文将介绍五种不同的PHP教程,帮助您学习如何使用PHP读取TXT文本内容。PHP读取文件内容在实际开发当中,还是比较常见的,所以今天我就给大家分享

    2024年01月18日
    浏览(45)
  • 【100个 Unity实用技能】 | Unity中Text文本框 和 InputField文本输入框 内容换行问题

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 🌲Unity实战100例专栏推荐:Unity 实战100例 教程 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长

    2024年02月11日
    浏览(54)
  • python word中插入excel文件以图标显示(win32com调用vba代码)

    参考文章:(5条消息) python extension(pywin32) 插入宏到word_hit_liuanhuaming的专栏-CSDN博客   功能需求:在C:UsersuserDesktop20210408-1xxx.docx中插入xxx.xlsx文件以图标显示,如下图:   1.准备: 1)python模块安装: 2)word启用宏功能: 文件-选项 信任中心-信任中心设置 勾选信任对VBA工程对象模型

    2023年04月08日
    浏览(39)
  • 【100个 Unity实用技能】 | Unity中Text文本框 和 InputField文本输入框 内容换行问题【文末送书】

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 🌲Unity实战100例专栏推荐:Unity 实战100例 教程 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长

    2024年02月12日
    浏览(49)
  • C#:对word中表格进行复制、粘贴并且替换内容

    在我上一篇对于word开发讲述的文章中对word开发进行了一些介绍,今天接着上一篇文章再介绍一下如何复制word中的表格,然后进行粘贴的操作,最后再介绍一下如何替换表格中的文本。 首先如果想要复制word中的表格自然然需要先实例化doc,这个就不写了。不会的伙伴可以去

    2024年02月09日
    浏览(40)
  • 自然语言处理:提取长文本进行文本主要内容(文本意思)概括 (两种方法,但效果都一般)

    本文主要针对长文本进行文本提取和中心思想概括,原文档放在了附件里面:科大讯飞公告 -----------------------------------方法一:jieba分词提取文本(句子赋分法)------------------------- 1、首先导入相关库并读取文档内容: 这里仅作演示所以只读取了文档的第一条数据文本,如果

    2024年02月10日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包