One thing that may make it even better, is adding support for subdirectories. (That is: Files in multiple subdirectories)
I am an absolute newbie in this, and don't know the syntax, the parameter, or where to add that.
Could somebody help?
If you have several dozen word files which contain the same content (such as Header, footer, some special words or number), and you need to replace the same content across those documents in Word. How would it be easier for you to get it done quickly? Certainly, you can open those files one by one to replace the same content, but it will be time-consuming and troublesome. This tutorial will show you a tricky way to replace same content within multiple documents in Word at once.
Find and replace texts across multiple word documents at the same time with VBA code
Easily find and replace different texts across multiple documents at the same time with Kutools for Word
1. Press Alt + F11 to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Module, then copy the following VBA code into the Module window.
VBA Code: Searching and replacing same content across multiple documents at one time
Sub CommandButton1_Click() 'Updated by Extendoffice 20180625 Dim xFileDialog As FileDialog, GetStr(1 To 100) As String '100 files is the maximum applying this code Dim xFindStr As String Dim xReplaceStr As String Dim xDoc As Document On Error Resume Next Set xFileDialog = Application.FileDialog(msoFileDialogFilePicker) With xFileDialog .Filters.Clear .Filters.Add "All WORD File ", "*.docx", 1 .AllowMultiSelect = True i = 1 If .Show = -1 Then For Each stiSelectedItem In .SelectedItems GetStr(i) = stiSelectedItem i = i + 1 Next i = i - 1 End If Application.ScreenUpdating = False xFindStr = InputBox("Find what:", "Kutools for Word", xFindStr) xReplaceStr = InputBox("Replace with:", "Kutools for Word", xReplaceStr) For j = 1 To i Step 1 Set xDoc = Documents.Open(FileName:=GetStr(j), Visible:=True) Windows(GetStr(j)).Activate Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = xFindStr 'Find What .Replacement.Text = xReplaceStr 'Replace With .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 Application.Run macroname:="NEWMACROS" ActiveDocument.Save ActiveWindow.Close Next Application.ScreenUpdating = True End With MsgBox "Operation end, please view", vbInformation End Sub
3. Press the F5 key to run the code.
4. In the opening Browse window, please find and select the documents you will find and replace text inside, and then click the OK button. See screenshot:
5. In the first Kutools for Word dialog box, enter the text you will find across documents into the Find what box, and then click the OK button.
6. In the second Kutools for Word dialog box, enter the text you will replace with, and click the OK button.
8. Click the OK button in the next Microsoft Word dialog box to finish the find and replace.
In this case, all words "Word" in selected documents are replaced with "Excel" at the same time.
Here highly recommend the Batch Find and Replace feature of Kutools for Word. With this feature, you can easily find and replace different texts across multiple Word documents as the same time. Let's see how to apply this feature to find and replace texts across documents.
Kutools for Word : with more than 100 handy Word add-ins, free to try with no limitation in 60 days.
1. Please click Kutools Plus > Batch Find and Replace to enable the feature.
2. In the Batch Find and Replace dialog box, please configure as follows.
3. Close the Batch Find and Replace dialog box
For more information about this feature, please click here....
If you want to have a free trial of this utility, please go to free download the software first, and then go to apply the operation according above steps.