Note: The other languages of the website are Google-translated. Back to English
Logáil isteach  \/ 
x
or
x
Cláraigh  \/ 
x

or

Conas comhaid iolracha a chuardach agus a athsholáthar i bhfocal?

Má tá cúpla dosaen comhad focal agat ina bhfuil an t-ábhar céanna (mar shampla Ceanntásc, buntásc, roinnt focal nó uimhir speisialta), agus ní mór duit an t-ábhar céanna a athsholáthar ar fud na ndoiciméad sin i Word. Conas a bheadh ​​sé níos éasca duit é a chur i gcrích go tapa? Cinnte, is féidir leat na comhaid sin a oscailt ceann ar cheann chun an t-ábhar céanna a athsholáthar, ach tógfaidh sé am agus trioblóideach. Taispeánfaidh an rang teagaisc seo bealach fánach duit an t-ábhar céanna a athsholáthar laistigh de dhoiciméid iolracha i Word ag an am céanna.

Faigh agus cuir téacs VBA in ionad téacsanna ar fud cáipéisí iolracha ag an am céanna
Téacsanna éagsúla a aimsiú agus a athsholáthar go héasca thar iliomad doiciméad ag an am céanna le Kutools for Word


Faigh agus cuir téacs VBA in ionad téacsanna ar fud cáipéisí iolracha ag an am céanna

1. Brúigh Eile + F11 a oscailt Microsoft Visual Basic d’Fheidhmchláir fhuinneog.

2. Sa Microsoft Visual Basic d’Fheidhmchláir fuinneog, cliceáil IonsáighModúil, ansin cóipeáil an cód VBA seo a leanas isteach i bhfuinneog an Mhodúil.

Cód VBA: An t-ábhar céanna a chuardach agus a athsholáthar ar fud iliomad doiciméad ag aon am amháin

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. Brúigh an F5 eochair chun an cód a rith.

4. San oscailt Brabhsáil fuinneog, faigh agus roghnaigh na cáipéisí a gheobhaidh tú agus cuir téacs nua ina n-áit, agus ansin cliceáil ar an OK cnaipe. Féach an pictiúr:

5. Sa chéad cheann Kutools for Word bosca dialóige, cuir isteach an téacs a gheobhaidh tú ar fud na ndoiciméad isteach sa Aimsigh cad bosca, agus ansin cliceáil ar an OK cnaipe.

6. Sa dara ceann Kutools for Word bosca dialóige, cuir isteach an téacs a chuirfidh tú ina ionad, agus cliceáil ar an OK cnaipe.

8. Cliceáil ar an OK cnaipe sa chéad cheann eile Microsoft Word bosca dialóige chun an toradh a chríochnú agus a athsholáthar.

Sa chás seo, cuirtear “Excel” in ionad gach focal “Word” i ndoiciméid roghnaithe ag an am céanna.


Téacsanna éagsúla a aimsiú agus a athsholáthar go héasca thar iliomad doiciméad ag an am céanna le Kutools for Word

Seo a mholadh go mór an Faigh Baisc agus Ionadaigh gné de Kutools for Word. Leis an ngné seo, is féidir leat téacsanna éagsúla a aimsiú agus a athsholáthar go héasca ar fud iliomad doiciméad Word ag an am céanna. Feicfimid conas an ghné seo a chur i bhfeidhm chun téacsanna a aimsiú agus a athsholáthar ar fud cáipéisí.

Kutools for Word : le níos mó ná 100 breiseán áisiúil Word, saor chun triail a dhéanamh gan aon teorannú i 60 lá.

1. Cliceáil le do thoil Kutools Plus > Faigh Baisc agus Ionadaigh chun an ghné a chumasú.

2. Sa Faigh Baisc agus Ionadaigh bosca dialóige, cumraigh mar a leanas le do thoil.

  • 2.1) Cliceáil ar an Cuir Rae leis cnaipe faoi Aimsigh agus Ionadaigh cluaisín;
  • 2.2) Sna réimsí as a chéile a cruthaíodh:
A. Cuir isteach an téacs a gheobhaidh tú sa bhosca téacs sa Aimsigh gcolún
B. Cuir isteach an téacs a chuirfidh tú in áit sa bhosca téacs sa Ionadaigh colún;
C. Sonraigh cineál cuardaigh, cá bhfaighidh tú an téacs agus dath chun aird a tharraingt ar an téacs de réir mar a theastaíonn uait. Sa chás seo, roghnaím Meaitseáil iomlán focal, Príomhdhoiciméad agus dath áirithe ón Cineál Cuardaigh, Faigh isteach agus Aibhsigh colúin;
  • 2.3) Déan céim 2.1 agus 2.2 arís chun tuilleadh téacsanna a gheobhaidh tú a chur leis agus a athsholáthar;
  • 2.4) Cliceáil ar an  cnaipe sa Cineál Comhad alt chun na doiciméid Word a chur leis ina bhfaighidh tú téacsanna agus ina n-ionad iad;
  • 2.5) Cliceáil ar an Ionadaigh or Aimsigh cnaipe. Féach an pictiúr:

nótaí:
1. Má chliceálann tú ar an Aimsigh cnaipe, taispeánfar na torthaí aimsithe go léir faoin Toradh Réamhamhairc cluaisín. Tar éis réamhamharc a dhéanamh ar na torthaí, más mian leat gach téacs a athsholáthar, cliceáil ar an Aimsigh agus Ionadaigh cluaisín. Seachas sin, dún an dialóg.

2. Má chliceálann tú ar an Ionadaigh cnaipe, cuirfear téacsanna nua in ionad gach téacs sonraithe láithreach, agus taispeánfar na torthaí faoin Toradh Réamhamhairc Tab.

3. Má shonraíonn tú dathanna aibhsithe i gcéim 2, cuirfear dathanna sonraithe in iúl do gach téacs nua, agus is féidir sracfhéachaint a fháil orthu i ndoiciméid.

3. Dún an Faigh Baisc agus Ionadaigh bosca dialóige

Le haghaidh tuilleadh faisnéise faoin ngné seo, le do thoil Cliceáil anseo....

Más mian leat triail saor in aisce a bhaint as an bhfóntas seo, téigh chuig íoslódáil saor in aisce na bogearraí ar dtús, agus ansin téigh chun an oibríocht a chur i bhfeidhm de réir na gcéimeanna thuas.



Uirlisí Táirgeachta Focal Molta

 

Kutools For Word - Níos mó ná 100 Gné Ardteist le haghaidh Word, Sábháil Do 50% Am

  • Is féidir oibríochtaí casta agus arís agus arís eile a dhéanamh próiseáil aon-uaire i soicindí.
  • Cuir isteach íomhánna iomadúla thar fhillteáin i ndoiciméad Word ag an am céanna.
  • Cumaisc agus comhcheangail comhaid Word iolracha thar fhillteáin i gceann amháin leis an ord atá uait.
  • Roinn an doiciméad reatha i ndoiciméid ar leithligh de réir ceannteidil, briseadh ailt nó critéir eile.
  • Tiontaigh comhaid idir Doc agus Docx, Docx agus PDF, bailiú uirlisí le haghaidh comhshó agus roghnú coitianta, agus mar sin de ...

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 · 4 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.
    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.
      crystal · 11 months ago
      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.
    Justine Belle · 1 years ago
    this was a lifesaver thank you so much
  • 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.
      crystal · 2 years ago
      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.
    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.
      crystal · 2 years ago
      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.
        Michael · 11 months ago
        Oh yeah! Thank you sooooo much! This is a life-saver!
  • 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
    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.
      keyvan · 3 years ago
      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.
    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.
      Asi · 3 years ago
      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.
    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.
    WAK · 3 years ago
    worked like a charm for me. Thanks a billion!
  • To post as a guest, your comment is unpublished.
    CC · 4 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.
      blue_crayon · 3 years ago
      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.
    CC · 4 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 · 4 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.
      blue_crayon · 3 years ago
      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.
    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.
    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 · 5 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 · 5 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.
      Ravini · 4 years ago
      To Merlin4099
      Wonderful code - thank you!! worked perfectly in executing what I needed.
  • 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 · 6 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
  • To post as a guest, your comment is unpublished.
    Nilesh · 6 years ago
    I want to change the format of the replaces text. i.e. "Pizza" has to be replaced with "[i]Burger[/i]".
    How can it be achieved?
  • To post as a guest, your comment is unpublished.
    Judy · 6 years ago
    Hello,
    This worked great for the word in the body of the document but did not replace the same word in the header. Any ideas.

    Thanks
  • To post as a guest, your comment is unpublished.
    Dani · 6 years ago
    This worked perfectly and saved me so much time. Thank you!
  • To post as a guest, your comment is unpublished.
    Pia · 6 years ago
    It only runs across selected files and files must be in one folder only. This is run as a macro in a word doc. It is run from clicking a button. It only updates word doc's Hope this helps.


    Private Sub CommandButton1_Click()
    Dim MyDialog As FileDialog, GetStr(1 To 100) As String '100 files is the maximum applying this code
    On Error Resume Next
    Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
    With MyDialog
    .Filters.Clear
    '~~> Change this file extention to the relevant doc type.
    .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)
    Windows(GetStr(j)).Activate
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    For i = 1 To doc.Hyperlinks.Count
    'If the hyperlink matches.
    If LCase(doc.Hyperlinks(i).Address) = "http://www.yahoo.co.uk/" Then
    'Change the links address.
    doc.Hyperlinks(i).Address = "https://www.google.co.uk"
    'Change the links display text if desired.
    doc.Hyperlinks(i).TextToDisplay = "www.google.co.uk"
    End If
    Next
    Application.Run macroname:="NEWMACROS"
    ActiveDocument.Save
    ActiveDocument.Close
    Next
    Application.ScreenUpdating = True
    End With
    MsgBox "operation end, please view", vbInformation
    End Sub
  • To post as a guest, your comment is unpublished.
    Pia Wilson · 6 years ago
    You then add one of the following two sections depending on if it is test or hyperlink to be replaced

    '~~> This section if uncommented will replace text - ONLY ONE OF TWO SECTIONS CAN BE UNCOMMENTED AT ONCE


    With Selection.Find
    .Text = "www.google.co.uk" 'Find What
    .Replacement.Text = "www.google.com" '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
    ActiveDocument.Close
    Next
    Application.ScreenUpdating = True
    End With
    MsgBox "operation end, please view", vbInformation


    '~~> This section if uncommented will replace hyperlinks
    'For i = 1 To doc.Hyperlinks.Count
    ' 'If the hyperlink matches.
    ' If LCase(doc.Hyperlinks(i).Address) = "http://www.google.co.uk/" Then
    ' 'Change the links address.
    ' doc.Hyperlinks(i).Address = "https://www.google.com"
    ' 'Change the links display text if desired.
    ' doc.Hyperlinks(i).TextToDisplay = "www.google.com"
    ' End If
    ' Next
    'Application.Run macroname:="NEWMACROS"
    'ActiveDocument.Save
    'ActiveDocument.Close
    'Next
    'Application.ScreenUpdating = True
    'End With
    'MsgBox "operation end, please view", vbInformation



    End Sub
    • To post as a guest, your comment is unpublished.
      segarn · 6 years ago
      Hi Pia,
      I am trying to run your script for replacing hyperlinks but am getting errors. Any chance you can post the script for replacing hyperlinks all in 1 piece? I must be messing something up when trying to patch your code together.
  • To post as a guest, your comment is unpublished.
    Pia Wilson · 6 years ago
    This is what finally worked for me. I hope it helps. I added this macro to a word file. It will run the replace any documents selected (you can select as many as you like) when the file dialoge is open. It wont work on sub folders so I did each folder in the file structure individually but it worked.It may not be the best fix but it works at least.


    Private Sub CommandButton1_Click()
    Dim MyDialog As FileDialog, GetStr(1 To 100) As String '100 files is the maximum applying this code
    On Error Resume Next
    Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
    With MyDialog
    .Filters.Clear
    '~~> Change this file extention to the relevant doc type.
    .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)
    Windows(GetStr(j)).Activate
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    'Section then either one or the other of sections of code to follow.
  • To post as a guest, your comment is unpublished.
    Greg Simonis · 6 years ago
    I still cannot get this to work on my PC running Windows 7.
    When I run it, I get an error msg at the line:
    -Windows(GetStr(j)).Activate
    The error msg. is:
    -Compile error:
    -Sub or Function not defined
    Any idea why? And how to fix it?
  • To post as a guest, your comment is unpublished.
    Muralisk · 6 years ago
    Worked like a charm and it did save a lot of time and effort for me. Thanks.
  • To post as a guest, your comment is unpublished.
    Greg Simonis · 7 years ago
    When I run it, it gets hung up and stops at:
    Application.Run macroname:="NEWMACROS"
    and when I step into it, it tells me I have a Compile error: Named argument not found.
    Now what?