0
点赞
收藏
分享

微信扫一扫

VBA实现对一个文件夹内的所有文件内容操作(源代码)

一脸伟人痣 2022-02-13 阅读 77
p2plinqc#

最近在学习过程中,需要对几百个word文档的内容进行相同的替换操作,例如删除某些数字,或者替换某些文件,或者增加相同的内容;

刚开始,一个一个操作,十几篇文档就花费十几分钟,几百个文档就一个下午就没有了,而且是不停的操作才能完成;

突然想到这句话:任何重复性的操作都可以都软件代替,本来准备用C#,但是电脑才重装系统,所以就用了简单的VBA工程实现了,目前能用;

Sub wordReplace()
Dim myPath, myFile, sr
Dim wdapp, wdDoc

Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动


myPath = ThisWorkbook.Path & "\" '把文件路径定义给变量
myFile = Dir(myPath & "*.docx") '依次找寻指定路径中的*.docx文件

Set wdapp = CreateObject("Word.Application")
wdapp.Visible = True

On Error Resume Next '捕捉错误

Do While myFile <> "" '当指定路径中有文件时进行循环
    Set wdDoc = wdapp.Documents.Open(ThisWorkbook.Path & "\" & myFile) '打开
    wdDoc.Activate
    sr = wdDoc.Content '将word的文档内容赋予变量sr
    sr = Replace(sr, "XXX", "")
    sr = Replace(sr, "XXX2", "")
    sr = Replace(sr, "原字符", "更新字符")

     sr ="文档开头增加的内容" +sr

   sr =sr+"文档结尾增加的内容"
    wdDoc.Content = sr  ' 更新至word中    
    wdDoc.Save ' 保存
    wdDoc.Close '关闭word
    Set wdDoc = Nothing
    myFile = Dir '找寻下一个*.xls文件
Loop

wdapp.Quit
Set wdapp = Nothing


Application.ScreenUpdating = True '冻结屏幕,此类语句一般成对使用
End Sub
 

举报

相关推荐

0 条评论