Hoppa till huvudinnehåll

Hur hittar och ersätter man text i Word-dokument från Excel?

I Word-dokument kan vi använda funktionen Sök och ersätt för att snabbt hitta och ersätta en text. Men om det finns flera texter som behöver hittas och ersättas, skriv in texten en efter en i Sök och ersätt funktionen kommer att vara tidskrävande. I det här fallet kan du ange sök och ersätta texter i listan över celler, och med hjälp av VBA-kod i Excel för att utföra detta jobb med lätthet. I den här artikeln kommer jag också att introducera en användbar funktion för att hitta och ersätta texter i flera Word-dokument.

Hitta och ersätt flera texter i ett Word-dokument från Excel med VBA-kod

Hitta och ersätt flera texter i flera Word-dokument från Excel med VBA-kod

Hitta och ersätt flera texter i flera Word-dokument med en kraftfull funktion


Hitta och ersätt flera texter i ett Word-dokument från Excel med VBA-kod

Om du vill hitta och ersätta vissa texter i endast en Word-fil, kan följande VBA-kod göra dig en tjänst.

1. I Excel-kalkylblad, skapa en kolumn som innehåller de texter du vill hitta och ersätta, och en annan kolumn med texter att ersätta med enligt skärmbilden nedan. Och tryck sedan Alt + F11 samtidigt för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka sedan Insert > Modulerna, kopiera och klistra in nedanstående VBA-kod i fönstret.

VBA-kod: Hitta och ersätt flera texter i en Word-fil

Sub replace_texts_range_of_cells()
'Updateby ExtendOffice
Dim xWordApp As Word.Application
Dim xDoc As Word.Document
Dim xRng As Range
Dim I As Integer
Dim xFileDlg As FileDialog
On Error GoTo ExitSub
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
xFileDlg.AllowMultiSelect = False
xFileDlg.Filters.Add "Word Document", "*.docx; *.doc; *.docm"
xFileDlg.FilterIndex = 2
If xFileDlg.Show <> -1 Then GoTo ExitSub
Set xRng = Application.InputBox("Please select the lists of find and replace texts (Press Ctrl key to select two same size ranges):", "Kutools for Excel", , , , , , 8)
If xRng.Areas.Count <> 2 Then
  MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size.", vbInformation + vbOKOnly, "Kutools for Excel"
  GoTo ExitSub
End If
If (xRng.Areas.Item(1).Rows.Count <> xRng.Areas.Item(2).Rows.Count) Or _
  (xRng.Areas.Item(1).Columns.Count <> xRng.Areas.Item(2).Columns.Count) Then
  MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size.", vbInformation + vbOKOnly, "Kutools for Excel"
  GoTo ExitSub
End If
Set xWordApp = CreateObject("Word.application")
xWordApp.Visible = True
Set xDoc = xWordApp.Documents.Open(xFileDlg.SelectedItems.Item(1))
For I = 1 To xRng.Areas.Item(1).Cells.Count
  With xDoc.Application.Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = xRng.Areas.Item(1).Cells.Item(I).Value
    .Replacement.Text = xRng.Areas.Item(2).Cells.Item(I).Value
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
  End With
  xDoc.Application.Selection.Find.Execute Replace:=wdReplaceAll
Next
ExitSub:
  Set xRng = Nothing
  Set xFileDlg = Nothing
  Set xWordApp = Nothing
  Set xDoc = Nothing
End Sub

3. Efter att ha klistrat in koden, fortfarande i Microsoft Visual Basic för applikationer fönstret klickar verktyg > Referensprojekt, se skärmdump:

4. I popp-out Referenser - VBAProject dialogrutan väljer du Microsoft Word 16.0-objektbibliotek från listrutan, se skärmdump:

5. Klicka OK för att stänga dialogrutan och tryck nu F5 för att köra den här koden, i popup-fönstret Bläddra, välj den Word-fil du vill ersätta texterna, se skärmdump:

6. Klicka sedan OK, i följande dialogruta, tryck på ctrl för att välja den ursprungliga texten och nya textceller separat som du vill använda, se skärmdump:

7. Och klicka sedan på OK knappen, nu, texterna hittas och ersätts med de nya texterna i ditt angivna dokument, och filen öppnas också, bör du spara den för att behålla ändringarna.


Hitta och ersätt flera texter i flera Word-dokument från Excel med VBA-kod

Här skapar jag också en VBA-kod för att hitta och ersätta flera texter i flera Word-dokument, vänligen gör så här:

1. Öppna Excel-filen som innehåller två kolumner med värden att ersätta och ersätta med enligt skärmbilden nedan och tryck sedan på Alt + F11 samtidigt för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka sedan Insert > Modulerna, kopiera och klistra in nedanstående VBA-kod i fönstret.

VBA-kod: Hitta och ersätt flera texter i flera Word-filer

Sub FindReplaceAcrossMultipleWordDocuments()
'Updateby ExtendOffice
Dim xWordApp As Word.Application
Dim xDoc As Word.Document
Dim xRng As Range
Dim I As Integer
Dim xFolderDlg As FileDialog
Dim xFSO As Scripting.FileSystemObject
Dim xFile As File
On Error GoTo ExitSub
Set xFolderDlg = Application.FileDialog(msoFileDialogFolderPicker)
If xFolderDlg.Show <> -1 Then GoTo ExitSub
Set xRng = Application.InputBox("Please select the lists of find and replace texts (Press Ctrl key to select two same size ranges", "Kutools for Excel", , , , , , 8)
If xRng.Areas.Count <> 2 Then
  MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size", vbInformation + vbOKOnly, "Kutools for Excel"
  GoTo ExitSub
End If
If (xRng.Areas.Item(1).Rows.Count <> xRng.Areas.Item(2).Rows.Count) Or _
  (xRng.Areas.Item(1).Columns.Count <> xRng.Areas.Item(2).Columns.Count) Then
  MsgBox "Please select two columns (press Ctrl key), the two ranges have the same size.", vbInformation + vbOKOnly, "Kutools for Excel"
  GoTo ExitSub
End If
Set xFSO = New Scripting.FileSystemObject
Set xWordApp = CreateObject("Word.application")
xWordApp.Visible = True
For Each xFile In xFSO.GetFolder(xFolderDlg.SelectedItems(1)).Files
  If VBA.InStr(xFile.Type, "Microsoft Word") > 0 Then
    Set xDoc = xWordApp.Documents.Open(xFile.Path)
    For I = 1 To xRng.Areas.Item(1).Cells.Count
      With xDoc.Application.Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = xRng.Areas.Item(1).Cells.Item(I).Value
        .Replacement.Text = xRng.Areas.Item(2).Cells.Item(I).Value
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
      End With
      xDoc.Application.Selection.Find.Execute Replace:=wdReplaceAll
    Next
    xDoc.Close wdSaveChanges
  End If
Next
xWordApp.Quit
MsgBox "The Find and Replace has been completed", vbInformation + vbOKOnly, "Kutools for Excel"
ExitSub:
  Set xRng = Nothing
  Set xFolderDlg = Nothing
  Set xWordApp = Nothing
  Set xDoc = Nothing
End Sub

3. Fortfarande i Microsoft Visual Basic för applikationer fönstret klickar verktyg > ReferensprojektI Referenser - VBAProject dialogrutan väljer du Microsoft Word 16.0-objektbibliotek och Microsoft Scripting Runtime alternativ från listrutan, se skärmdump:

4. Efter att ha kontrollerat de två alternativen, och klicka OK för att stänga dialogrutan och fortsätt sedan att trycka på F5 för att exekvera den här koden, i öppningen Bläddra fönster, välj en mapp innehåller de Word-dokument som du vill utföra sökningen och ersätt, se skärmdump:

5. Klicka OK knappen, i den utfällda dialogrutan, tryck ctrl för att välja originaltexten och nya textkolumner separat som du vill använda, se skärmdump:

6. Slutligen klickar du på OK, och de ursprungliga texterna ersätts med de nya över avhandlingsfilerna, efter att ha slutförts kommer en dialogruta att dyka upp som nedanstående skärmbild:

7. Klicka OK för att stänga dialogrutan. Och du kan gå till filerna för att kontrollera de konverterade resultaten.


Hitta och ersätt flera texter i flera Word-dokument med en kraftfull funktion

Det här avsnittet kommer jag att prata om hur man batchsöker och ersätter texter i flera Word-dokument från Word istället för Excel. Med ett kraftfullt verktyg-Kutools för Word, kan du snabbt hitta och ersätta de specifika texterna och ersätta dem med nya texter i huvudfil, sidhuvud, sidfot, kommentarer etc. och markera resultaten efter behov.

1. Öppna en Word-fil och klicka sedan på Kutools Plus > Batch Hitta och ersätt, se skärmdump:

2. I det öppnade Batch Hitta och ersätt dialogrutan, gör följande:

  • Klicka Lägg till knappen för att lägga till de Word-filer där du vill hitta och ersätta texter;
  • Klicka på i den vänstra rutan Lägg till rad från det översta bandet;
  • I det infogade fältet anger du den ursprungliga texten och ny text i hitta och ersätta separata kolumner som du vill hitta och ersätta. Du kan också ange en färg för att markera de ersatta texterna efter behov.

3. När du har skapat sökkriterierna klickar du ersätta knappen för att gå till Förhandsgranska resultat fliken för att se sök- och ersättresultaten. Se skärmdump:

4. Klicka sedan Stänga knappen, och en uppmaningsruta dyker upp för att påminna dig om du vill spara detta scenario, klicka Ja för att spara det och klicka Nej för att ignorera det, se skärmdump:

tips: Den här funktionen kan också hjälpa till att utföra följande operationer:
  • Hitta och ersätt specialtecken i flera Word-dokument;
  • Hitta och ersätt flera strängar med specifik formatering i flera Word-dokument;
  • Hitta och ersätt flera strängar i flera txt/htm/html-filer.

Klicka för att få mer detaljerad information om denna funktion...

Bästa kontorsproduktivitetsverktyg

🤖 Kutools AI Aide: Revolutionera dataanalys baserat på: Intelligent utförande   |  Generera kod  |  Skapa anpassade formler  |  Analysera data och generera diagram  |  Anropa Kutools funktioner.
Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50+ Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

Beskrivning


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
Comments (10)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This works great, thank you! Is there a way to make the replacement text carry hyperlinks over? ie - if you have a hyperlinked replacement in the excel sheet, it is still hyperlinked in the Word doc?

Thanks!
This comment was minimized by the moderator on the site
Is there a way too modify this too find text and create hyperlink on the text from another column where i have the links already created? It worked correctly as a find and replace for me. Thanks
This comment was minimized by the moderator on the site
Hi,

I am wondering how this can be modified to also find and replace text in footnotes?

Thanks!
This comment was minimized by the moderator on the site
Hello, Nate,
If you want to find and replace the text in footnotes at the same time, maybe the Kutools for Word's Batch Find and Replace feature can help you.
You just need to check Main document and Footnotes from the Find in section, see below image:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/2023-comment/doc-find-replace-word.png
This comment was minimized by the moderator on the site
It doesn't work.

Compile error: User-defined type not defined
This comment was minimized by the moderator on the site
Hello, Param
The code works well.
Maybe, you didn't check Microsoft Word 16.0 Object Library from the References – VBAProject dialog box.
It means that you may miss the Step 3 and Step 4 of this article.
Please try again, if you still have any other problem, please comment here.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/2023-comment/doc-find-replace-word-file-excel.png
This comment was minimized by the moderator on the site
Sorry for the overdue reply. I have replied before, but my reply dissapeared somehow. You're right, the code does work well. But it replaced nothing when I tried it on a file with more than 80,000 lines.
This comment was minimized by the moderator on the site
Hello, Param
I have tested the code, it works well in my Word docuent which contains 140,000 lines.
Do you mind to upload your attachment here for testing?
Or you can apply our Kutools for Word's Batch Find and Replace feature, it can help you with ease.
Thank you!
This comment was minimized by the moderator on the site
Greetings,
the first code :
VBA code: Find and replace multiple texts in one Word file

thows error : compile error user defined type not defined
https://i.imgur.com/FZPBy4I.png
This comment was minimized by the moderator on the site
Hello, Erik
The code works well.
Maybe, you didn't check Microsoft Word 16.0 Object Library from the References – VBAProject dialog box.
It means that you may miss the Step 3 and Step 4 of this article.
Please try again, if you still have any other problem, please comment here.

https://www.extendoffice.com/images/stories/comments/comment-skyyang/2023-comment/doc-find-replace-word-file-excel.png
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations