批量替换文件夹多个doc中的字符串

Posted 星光灿烂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量替换文件夹多个doc中的字符串相关的知识,希望对你有一定的参考价值。

‘ --------------------------------------------------------------------------------
‘ 用来替换文件夹多个doc中的字符串
‘ 作者:[email protected]
‘ 日期:2017年4月25日
‘ --------------------------------------------------------------------------------
‘ --------------------------------------------------------------------------------
‘ 用来替换单个doc中的字符串
‘ 作者:[email protected]
‘ 日期:2017年4月25日
‘ --------------------------------------------------------------------------------
Function docReplace(fullpath, searchStr, replaceStr)
    Application.ScreenUpdating = False
    Dim myDoc As Document
    Set myDoc = Documents.Open(FileName:=(fullpath))
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = searchStr
        .Replacement.Text = replaceStr
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    myDoc.Save
    myDoc.Close
    Set myDoc = Nothing
    Application.ScreenUpdating = True
End Function
‘ --------------------------------------------------------------------------------
‘ 用来获取文件夹路径
‘ 作者:[email protected]
‘ 日期:2017年4月25日
‘ --------------------------------------------------------------------------------
Function getDir()
    Dim myPath As String
    ‘ 选择目标文件夹
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "选择目标文件夹"
        If .Show = -1 Then
            myPath = .SelectedItems(1)
        Else
            Exit Function
        End If
    End With
    getDir = myPath
End Function
‘ --------------------------------------------------------------------------------
‘ 批量替换多个doc中的字符串
‘ 作者:[email protected]
‘ 日期:2017年4月25日
‘ --------------------------------------------------------------------------------
Sub MultiDocReplace()
    Application.ScreenUpdating = True
    Dim fpath As String, myPath As String
    myPath = getDir()
    docFile = Dir(myPath & "\*.doc*", vbDirectory)
    
    Do While docFile <> ""   ‘ 开始循环。
        fpath = myPath & "\" & docFile
        Call docReplace(fpath, "孝感", "荆州")
        docFile = Dir
    Loop
    Application.ScreenUpdating = True
End Sub




以上是关于批量替换文件夹多个doc中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

shell :linux sed 批量替换字符串

用excel中的VBA,然后根据excel中单元格中内容,批量替换一个word的模板doc中的字符。字符有很多处。

linux系统批量替换文件中的字符

linux下批量替换文件内容

linux下批量查询文件内容字符串并替换

通过sed命令替换批量文件中的字符串