工作上有个同事问我:

我手上有一批合同,能不能帮我把里面的“老项目名”全部都改成“新项目名”。

我说好呀,有多少个呀?120多个。。。X。。。

好吧,写个【宏】吧:

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 & "*.doc*")

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

myDoc.Save

myDoc.Close

myFile = Dir

Loop

myAPP.Quit '关掉临时进程

Application.ScreenUpdating = True

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

End Sub

我把上面的【宏】做成了按钮:

例如我想把下面三个文件的“东西”都换成“美女”

关注公众号,在后台回复Word批量替换即可获取该宏文档

原创不易,转载请保留出处。