Note: The other languages of the website are Google-translated. Back to English
Přihlásit se  \/ 
x
or
x
Registrace  \/ 
x

or

Jak vyhledávat a nahrazovat více souborů ve Wordu?

Pokud máte několik desítek souborů slov, které obsahují stejný obsah (například záhlaví, zápatí, některá speciální slova nebo číslo), a musíte nahradit stejný obsah v těchto dokumentech v aplikaci Word. Jak by pro vás bylo snazší to udělat rychle? Určitě můžete tyto soubory otevírat jeden po druhém, abyste nahradili stejný obsah, ale bude to časově náročné a problematické. Tento výukový program vám ukáže složitý způsob, jak nahradit stejný obsah ve více dokumentech najednou.

Najděte a nahraďte texty ve více slovních dokumentech současně pomocí kódu VBA
Pomocí aplikace Kutools pro Word můžete snadno najít a nahradit různé texty ve více dokumentech současně


Najděte a nahraďte texty ve více slovních dokumentech současně pomocí kódu VBA

1. lis Další + F11 k otevření Microsoft Visual Basic pro aplikace okno.

2. V Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko VložitModul, potom zkopírujte následující kód VBA do okna modulu.

Kód VBA: Hledání a nahrazování stejného obsahu ve více dokumentech najednou

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. zmáčkni F5 klíč ke spuštění kódu.

4. V otvoru Procházet V okně vyhledejte a vyberte dokumenty, ve kterých najdete a nahradíte text, a poté klikněte na ikonu OK knoflík. Viz screenshot:

5. V první Kutools pro Word Do dialogového okna zadejte text, který najdete v dokumentech Najít to, co a poté klikněte na OK tlačítko.

6. Ve druhé Kutools pro Word dialogové okno, zadejte text, který nahradíte, a klikněte na OK tlačítko.

8. Klepněte na tlačítko OK tlačítko v dalším Microsoft Word dialogové okno pro dokončení hledání a nahrazení.

V takovém případě budou všechna slova „Word“ ve vybraných dokumentech současně nahrazena slovy „Excel“.


Pomocí aplikace Kutools pro Word můžete snadno najít a nahradit různé texty ve více dokumentech současně

Zde velmi doporučujeme Dávkové hledání a nahrazení vlastnost Kutools pro Word. Díky této funkci můžete snadno najít a nahradit různé texty ve více dokumentech Word najednou. Podívejme se, jak použít tuto funkci k vyhledání a nahrazení textů v dokumentech.

Kutools pro Word : s více než 100 užitečnými doplňky Wordu, zdarma vyzkoušet bez omezení do 60 dnů.

1. Klikněte prosím Kutools Plus > Dávkové hledání a nahrazení pro povolení této funkce.

2. V Dávkové hledání a nahrazení V dialogovém okně proveďte následující konfiguraci.

  • 2.1) Klikněte na Přidat řádek pod tlačítkem Najít a nahradit karta;
  • 2.2) V polích vytvořených řádků:
A. Zadejte text, který najdete do textového pole v Najít sloupec
B. Zadejte text, který nahradíte, do textového pole v Nahradit sloupec;
C. Určete typ hledání, kde najdete text a barvu pro zvýraznění textu podle potřeby. V tomto případě vyberu Plná shoda slov, Hlavní dokument a určitou barvu z Typ vyhledávání, Nalézt v a Zdůraznit sloupce;
  • 2.3) Opakujte kroky 2.1 a 2.2 a přidejte další texty, které najdete a nahradíte;
  • 2.4) Klikněte na  tlačítko v Typ souboru sekce pro přidání dokumentů Wordu, ve kterých najdete a nahradíte texty;
  • 2.5) Klikněte na Nahradit or Najít knoflík. Viz screenshot:

Poznámky:
1. Pokud kliknete na Najít tlačítko, všechny výsledky hledání se zobrazí pod Výsledek náhledu záložka. Pokud chcete po náhledu výsledků nahradit všechny texty, klikněte na ikonu Najít a nahradit záložka. Jinak zavřete dialogové okno.

2. Pokud kliknete na Nahradit Tlačítko, všechny zadané texty budou okamžitě nahrazeny novými a výsledky se také zobrazí pod Výsledek náhledu Karta.

3. Pokud v kroku 2 zadáte barvy zvýraznění, všechny nahrazené texty budou zvýrazněny určenými barvami a můžete je snadno najít v dokumentech.

3. Zavři Dávkové hledání a nahrazení Dialogové okno

Další informace o této funkci získáte klikněte zde....

Chcete-li mít bezplatnou zkušební verzi tohoto nástroje, přejděte na software si stáhněte zdarma nejprve a poté přejděte k použití operace podle výše uvedených kroků.



Doporučené nástroje produktivity slov

 

Kutools pro Word - více než 100 pokročilých funkcí pro Word, ušetříte 50% času

  • Složité a opakované operace lze provádět jednorázově během několika sekund.
  • Vložte více obrázků do složek do dokumentu Word najednou.
  • Sloučte a zkombinujte více souborů Wordu napříč složkami do jednoho v požadovaném pořadí.
  • Rozdělte aktuální dokument na samostatné dokumenty podle záhlaví, zalomení sekce nebo jiných kritérií.
  • Převádějte soubory mezi Doc a Docx, Docx a PDF, kolekci nástrojů pro běžné převody a výběr atd. ...

Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    T-H · 3 months ago
    This is SUCH a time saving solution. THANK YOU!
    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?
  • To post as a guest, your comment is unpublished.
    crystal · 10 months ago
    @Daphne Hi Daphne,
    Why not try the Batch Find and Replace feature of Kutools for Word? It can solve this issue with ease.
  • To post as a guest, your comment is unpublished.
    Michael · 10 months ago
    @crystal Oh yeah! Thank you sooooo much! This is a life-saver!
  • To post as a guest, your comment is unpublished.
    Daphne · 1 years ago
    I need to replace text in multiple Word files and have the replaced text highlighted. Is there a way to do this?
  • To post as a guest, your comment is unpublished.
    Justine Belle · 1 years ago
    this was a lifesaver thank you so much
  • To post as a guest, your comment is unpublished.
    crystal · 2 years ago
    @nathalie Hi,
    Please apply the below VBA code to include the content of headers and footers when finding and replacing texts in multiple documents at once.

    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"
    If MsgBox("Do you want to replace texts in headers and footers too? ", vbYesNo, "Kutools for Word") = vbYes Then
    ActiveWindow.View.SplitSpecial = wdPanePrimaryFooter
    Selection.Find.Execute Replace:=wdReplaceAll
    Application.Run macroname:="NEWMACROS"
    ActiveWindow.View.SplitSpecial = wdPanePrimaryHeader
    Selection.Find.Execute Replace:=wdReplaceAll
    Application.Run macroname:="NEWMACROS"
    End If
    ActiveDocument.Save
    ActiveWindow.Close
    Next
    Application.ScreenUpdating = True
    End With
    MsgBox "Operation end, please view", vbInformation
    End Sub
  • To post as a guest, your comment is unpublished.
    crystal · 2 years ago
    @zofito Hi Tiago,
    Please apply the below VBA code to include the content of headers and footers when finding and replacing texts in multiple documents at once.

    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"
    If MsgBox("Do you want to replace texts in headers and footers too? ", vbYesNo, "Kutools for Word") = vbYes Then
    ActiveWindow.View.SplitSpecial = wdPanePrimaryFooter
    Selection.Find.Execute Replace:=wdReplaceAll
    Application.Run macroname:="NEWMACROS"
    ActiveWindow.View.SplitSpecial = wdPanePrimaryHeader
    Selection.Find.Execute Replace:=wdReplaceAll
    Application.Run macroname:="NEWMACROS"
    End If
    ActiveDocument.Save
    ActiveWindow.Close
    Next
    Application.ScreenUpdating = True
    End With
    MsgBox "Operation end, please view", vbInformation
    End Sub
  • To post as a guest, your comment is unpublished.
    zofito · 2 years ago
    Is it possible to replace in the headers of the word doc?
  • To post as a guest, your comment is unpublished.
    dsadasd · 2 years ago
    Is that possible to replace in the header of the word doc?
  • To post as a guest, your comment is unpublished.
    martinadam · 2 years ago
    Thanks for sharing this information with us.
    Word search and replace tool
  • To post as a guest, your comment is unpublished.
    nathalie · 2 years ago
    Works perfectly but is there a similar macro to change text in the header! because this does not work with this version!
    thanks
  • To post as a guest, your comment is unpublished.
    blds · 3 years ago
    Doesn't work for me on footers. e.g find FFSOSxxxx and replace with GGSOSxxxx, i can see this code is great for others pls help. :(
  • To post as a guest, your comment is unpublished.
    Kath · 3 years ago
    Hi there, is there a code for replacing with text that is multiple sentences, with bullet points and quotation marks in MS word using this code - which is fantastic !
  • To post as a guest, your comment is unpublished.
    keyvan · 3 years ago
    @keyvan sorry, i was wrong. the problem is that the number is in the header and it seems that the trick is not working in header. if i open one of the files and activate the header then run the module it works but just in that specific file ,even if i select all the files. thanks again.
  • To post as a guest, your comment is unpublished.
    keyvan · 3 years ago
    hi, i want to replace a number but i guess the problem that it's not working is that the number is not written in english it's in Persian. I would be so thankfull if someone can help me with it.
  • To post as a guest, your comment is unpublished.
    Asi · 3 years ago
    @Rav Put your files in one folder and select them all with a shift key. Hope this works.
  • To post as a guest, your comment is unpublished.
    Rav · 3 years ago
    Hi, I new to VBA. I am able to get the data updated for only single file. How to select multiple files when the VBA script opens up ? The question might be simple to few, but it will help. Since i need to update a string in 175+ plus word files. Appreciate your quick response. Thanks ...
  • To post as a guest, your comment is unpublished.
    darshan Jain · 3 years ago
    Hi
    this code is only editing 7 documents at a time... why?
  • To post as a guest, your comment is unpublished.
    Bryce · 3 years ago
    I really appreciated this post. Thank you. It allowed me to spend 10 minutes implementing something that saved several hours of work.
  • To post as a guest, your comment is unpublished.
    tomukosuryadi3@gmail.com · 3 years ago
    What if I want to find and replace multiple sentences in multiple documents?
  • To post as a guest, your comment is unpublished.
    3Cees · 3 years ago
    Thank you so much. You win the internet!

    This has saved me amending 360 documents.

    You're my favourite :)
  • To post as a guest, your comment is unpublished.
    blue_crayon · 3 years ago
    @Paul Oz You can edit the footer by using almost identical code that the header uses. Copy everything from "Begin Header Updates" to "End Header Updates" and paste it directly after.

    Then, in this pasted section, find the word "wdSeekCurrentPageHeader" and change it to "wdSeekCurrentPageFooter".
  • To post as a guest, your comment is unpublished.
    blue_crayon · 3 years ago
    @CC Was figuring out this issue myself, today.

    First, make sure you fix the line:

    Selection.Find.Replacement.Cle arFormatting

    To be:

    Selection.Find.Replacement.ClearFormatting

    Then, change the following line:

    If ActiveWindow.View.SplitSpecialwdPane None Then

    To look like this:

    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then


    The code should look like this in the end:

    Windows(GetStr(j)).Activate
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
    ActiveWindow.Panes(2).Close
    End If

    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
    ActivePane.View.Type = wdOutlineView Then
    ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
  • To post as a guest, your comment is unpublished.
    WAK · 3 years ago
    worked like a charm for me. Thanks a billion!
  • To post as a guest, your comment is unpublished.
    CC · 3 years ago
    Merlin 4099, I am having trouble with the following portion of your code. I am new to VBA.:

    ' --------------- --------------- --------------- ----------
    ' Beginning Header Updates
    ' --------------- --------------- --------------- ----------
    Windows(GetStr(j)).Activate
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.Cle arFormatting

    If ActiveWindow.View.SplitSpecialwdPane None Then
    ActiveWindow.Panes(2).Close
    End If

    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
    ActivePane.View .Type = wdOutlineView Then

    Can anyone help me? I think I fixed most
  • To post as a guest, your comment is unpublished.
    CC · 3 years ago
    Merlin4099, I am having trouble with the following portion of your code:

    ' --------------- --------------- --------------- ----------
    ' Beginning Header Updates
    ' --------------- --------------- --------------- ----------
    Windows(GetStr(j)).Activate
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.Cle arFormatting

    If ActiveWindow.View.SplitSpecialwdPane None Then
    ActiveWindow.Panes(2).Close
    End If

    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
    ActivePane.View .Type = wdOutlineView Then

    Can you or anyone else help me?

    Thanks!
  • To post as a guest, your comment is unpublished.
    DaveW · 3 years ago
    Thanks so much for posting this, absolute lifesaver!

    I notice that there is a line "MatchWildcards = False", which implies that it's possible to use wildcards in the search text - is that possible and, if so, what's the protocol?

    Thanks again!
  • To post as a guest, your comment is unpublished.
    Paul Oz · 4 years ago
    Hi all,
    I am new to the whole VBA thing and I Love love love this code!
    I have 5000+ docs to review and if this works it will save heaps of time!
    I have the code above running however i can see that it does not cater for replacing text in footers, Only headers and the body of the doc.
    Can anyone assist in extending this to the entire document.
    P.S. not sure if this is relevant but the list of words that i need to replace is the same for headers, footers and the body...
    Any help would really be appreciated!
  • To post as a guest, your comment is unpublished.
    Terence · 4 years ago
    Out of interest what does the line: Application.Run macroname:="NEW MACROS" do?
    The rest of the code makes sense to me (used to VBA in Excel) but I can't figure out why you need to execute another piece of code here.
    Thanks for the great tool though.
  • To post as a guest, your comment is unpublished.
    Ravini · 4 years ago
    @Merlin4099 To Merlin4099
    Wonderful code - thank you!! worked perfectly in executing what I needed.
  • To post as a guest, your comment is unpublished.
    Mike · 4 years ago
    This macro was amazing..is there any code to update multiple excel files,spss files.also is there is any macro to update the header and footer on multiple word documents .

    Any help is appreciated .thanks !
  • To post as a guest, your comment is unpublished.
    Tracy · 4 years ago
    Just brilliant, saved me lots of time, thank you
  • To post as a guest, your comment is unpublished.
    Exis · 4 years ago
    You can always try a 3rd party tool to do this which makes it very easy: www.officefindreplace.com
  • To post as a guest, your comment is unpublished.
    Nick · 4 years ago
    I am trying to add an entire section to a document that has three lines, bolding, and bullet points. Is there a way to keep that formatting when running the macro?
  • To post as a guest, your comment is unpublished.
    Tali1953 · 5 years ago
    To Merlin4099
    You have just saved my life (... time...) with you code !
    THANK YOU !!!
  • To post as a guest, your comment is unpublished.
    Jelena · 5 years ago
    Is it possible to change code and search and replace photo in multiply files?
  • To post as a guest, your comment is unpublished.
    fatma · 5 years ago
    this was sooo helpful, thank you very much! I have just changed the contents in 90 word files. This is amazing! Just one more tip: at the beginning close all open word documents but one of your file to be change.
  • To post as a guest, your comment is unpublished.
    Exis,LLC · 5 years ago
    You can use a program such as [url]www.officefindreplace.com[/url] to perform the same operation on multiple documents, or multiple operations on the same document. [url]www.officefindreplace.com[/url]
  • To post as a guest, your comment is unpublished.
    Merlin4099 · 5 years ago
    ' --- Beging body text replacemnt 3 ---
    With Selection.Find
    .Text = "leadership" ' Find What
    .Replacement.Text = "supervision" ' Replace With
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ' --- End body text replacemnt 3 ---

    Application.Run macroname:="NEWMACROS"
    ActiveDocument.Save
    ActiveWindow.Close
    ' -------------------------------------------------------
    ' End of Body Updates
    ' -------------------------------------------------------
    Next

    Application.ScreenUpdating = True

    End With

    MsgBox "operation end, please view", vbInformation

    End Sub
  • To post as a guest, your comment is unpublished.
    Merlin409 · 5 years ago
    ' --- Beging body text replacemnt 1 ---
    With Selection.Find
    .Text = "Body text 1" ' Find What
    .Replacement.Text = "BT1" ' Replace With
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ' --- Beging body text replacemnt 1 ---

    ' --- Beging body text replacemnt 2 ---
    With Selection.Find
    .Text = "membership" ' Find What
    .Replacement.Text = "team members" ' Replace With
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ' --- End body text replacemnt 2 ---
  • To post as a guest, your comment is unpublished.
    Merlin409 · 5 years ago
    ' --- Beging header text replacemnt 2 ---
    With Selection.Find
    .Text = "Header String 2" ' Find What
    .Replacement.Text = "HReplacement 2" ' Replace With
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False

    If .Found = True Then
    ChangeMade = True
    End If

    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ' --- Beging header text replacemnt 2 ---

    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
    ' ------------------------------------------------------
    ' End of Header Updates
    ' ------------------------------------------------------


    ' -------------------------------------------------------
    ' Beginning of Body Updates
    ' -------------------------------------------------------
    Windows(GetStr(j)).Activate
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' Delete additional body replacement blocks if
    ' not needed or copy/paste additional blocks if
    ‘ required.
    ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • To post as a guest, your comment is unpublished.
    Merlin409 · 5 years ago
    ' --- Beging header text replacemnt 1 ---
    With Selection.Find
    .Text = "Header String 1" ' Find What
    .Replacement.Text = "HReplacement 1" ' Replace With
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False

    If .Found = True Then
    ChangeMade = True
    End If

    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ' --- End header text replacemnt 1 ---
  • To post as a guest, your comment is unpublished.
    Merlin409 · 5 years ago
    Sub Search_and_Replace()

    ' 500 files is the maximum applying this code
    Dim MyDialog As FileDialog, GetStr(1 To 500) As String

    On Error Resume Next

    Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)

    ' ---------------------------------------------------------------
    ' *.doc? allows processing of *.doc and *.docx files.
    ' ---------------------------------------------------------------
    With MyDialog
    .Filters.Clear
    .Filters.Add "All WORD File ", "*.doc?", 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

    For j = 1 To i Step 1
    Set Doc = Documents.Open(FileName:=GetStr(j), Visible:=True)

    ' -------------------------------------------------------
    ' Beginning Header Updates
    ' -------------------------------------------------------
    Windows(GetStr(j)).Activate
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    If ActiveWindow.View.SplitSpecial wdPaneNone Then
    ActiveWindow.Panes(2).Close
    End If

    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
    ActivePane.View.Type = wdOutlineView Then
    ActiveWindow.ActivePane.View.Type = wdPrintView
    End If

    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
  • To post as a guest, your comment is unpublished.
    Merlin409 · 5 years ago
    I ran across this code while searching with DuckDuckGo. I modified it to suit my needs which were to other requests such as handling multiple search/replace in the header and multiple search/replace in the body. I also modified it handle the older .DOC format and the new .DOCX format. The modified code is pasted below. Feel free to use and improve!

    It is being sent in multiple parts because comments to this site can only be 2000 characters or less.
    ------------------------------------------------------------
  • To post as a guest, your comment is unpublished.
    Milo · 5 years ago
    This code has saved so much time for me... so, thanks!

    One thing though - is there any way to increase the number of words that the macro finds/replaces? I need to find/replace multiple paragraphs at once and the macro seems to have a limit of approximately 200 characters.
  • To post as a guest, your comment is unpublished.
    Mario · 6 years ago
    Is it possible to tweak this macro to perform multiple 'find and replace' stances at once? There are several words and phareses I need to replace and as of now I need to reinsert the VBA code for every instance.

    I'm a noob regarding those things
  • To post as a guest, your comment is unpublished.
    Moh · 6 years ago
    I've been testing it for the last few minutes and it's really a wonder, thank you!

    I need to perform several 'find and replace' routines for several files. Dozens of routines for dozens of files.

    Is there a way to 'save' the module so I don't need to paste it again on the VBA screen every time I need to perform a new routine?
  • To post as a guest, your comment is unpublished.
    Pia · 6 years ago
    I am sorry but I have no idea re the headers or the format. It was not something I needed to include in my code. I had never used this before myself and the code I posted was taken from the original code above and then tweeked using code found in other searches until it worked. I am sorry I cant be of more help.
  • To post as a guest, your comment is unpublished.
    sathena99 · 6 years ago
    Thanks for posting this! I've run a couple tests and gotten it to work for me; however, it's not working on text in headers and footers for some reason. Is there a fix for this?
  • To post as a guest, your comment is unpublished.
    WORDZ · 6 years ago
    Big THX 4 the code... but also have that prblm with the headers... no change

    Thanks in advance