Gå til hovedindhold

Hvordan finder og erstatter man tekst i Word-dokument fra Excel?

I Word-dokument kan vi anvende funktionen Find og erstat til hurtigt at finde og erstatte én tekst. Men hvis der er flere tekster, der skal findes og erstattes, skal du indtaste teksten én efter én i funktionen Find og erstat, hvilket vil være tidskrævende. I dette tilfælde kan du indtaste find og erstatte tekster i listen over celler, og ved hjælp af VBA-kode i Excel for at udføre dette job med lethed. I denne artikel vil jeg også introducere en nyttig funktion til at batchfinde og erstatte tekster i flere Word-dokumenter.

Find og erstat flere tekster i ét Word-dokument fra Excel med VBA-kode

Find og erstat flere tekster i flere Word-dokumenter fra Excel med VBA-kode

Find og erstat flere tekster i flere Word-dokumenter med en kraftfuld funktion


Find og erstat flere tekster i ét Word-dokument fra Excel med VBA-kode

Hvis du kun vil finde og erstatte nogle tekster i én Word-fil, kan følgende VBA-kode gøre dig en tjeneste.

1. I Excel-regneark skal du oprette en kolonne, der indeholder de tekster, du vil finde og erstatte, og en anden kolonne med tekster, der skal erstattes med, som vist nedenfor. Og tryk så Alt + F11 taster samtidigt for at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik derefter på indsatte > Moduler, kopier og indsæt nedenstående VBA-kode i vinduet.

VBA-kode: Find og erstat flere tekster i én 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 indsættelse af koden, stadig i Microsoft Visual Basic til applikationer vindue, skal du klikke på Værktøjer > Referencer, se skærmbillede:

4. I poppet ud Referencer - VBAProject dialogboksen skal du vælge Microsoft Word 16.0-objektbibliotek fra listeboksen, se skærmbillede:

5. Klik OK knappen for at lukke dialogboksen, og tryk nu på F5 tasten for at køre denne kode, i pop op-vinduet Gennemse, vælg den Word-fil, du vil erstatte teksterne, se skærmbillede:

6. Klik derefter på OK, i den følgende dialogboks skal du trykke på Ctrl tasten for at vælge den originale tekst og nye tekstceller separat, som du vil bruge, se skærmbillede:

7. Klik derefter på OK knappen, nu teksterne er fundet og erstattet med de nye tekster i dit angivne dokument, og filen åbner også, bør du gemme den for at beholde ændringerne.


Find og erstat flere tekster i flere Word-dokumenter fra Excel med VBA-kode

Her opretter jeg også en VBA-kode til at finde og erstatte flere tekster i flere Word-dokumenter, gør venligst som dette:

1. Åbn Excel-filen, der indeholder to kolonner med værdier, der skal erstattes og erstattes med som vist nedenfor, og tryk derefter på Alt + F11 taster samtidigt for at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik derefter på indsatte > Moduler, kopier og indsæt nedenstående VBA-kode i vinduet.

VBA-kode: Find og erstat flere tekster i flere 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. Stadig i Microsoft Visual Basic til applikationer vindue, skal du klikke på Værktøjer > ReferencerI Referencer - VBAProject dialogboksen skal du vælge Microsoft Word 16.0-objektbibliotek , Microsoft Scripting Runtime muligheder fra listeboksen, se skærmbillede:

4. Efter at have kontrolleret de to muligheder, og klik OK for at lukke dialogboksen, og fortsæt derefter med at trykke på F5 nøglen til at udføre denne kode, i åbningen Gennemse vindue, skal du vælge en mappe, der indeholder de Word-dokumenter, som du vil udføre søgningen og erstaten, se skærmbillede:

5. Klik OK knappen i den åbnede dialogboks skal du trykke på Ctrl tasten for at vælge den originale tekst og nye tekstkolonner separat, som du vil bruge, se skærmbillede:

6. Endelig skal du klikke på OK, og de originale tekster erstattes med de nye på tværs af disse filer, efter at have fuldført, vil en dialogboks poppe ud som vist nedenfor skærmbillede:

7. Klik OK for at lukke dialogen. Og du kan gå til filerne for at kontrollere de konverterede resultater.


Find og erstat flere tekster i flere Word-dokumenter med en kraftfuld funktion

I dette afsnit vil jeg tale om, hvordan man batchfinder og erstatter tekster i flere Word-dokumenter fra Word i stedet for Excel. Med et kraftfuldt værktøj-Kutools for Word, kan du hurtigt finde og erstatte de specifikke tekster og erstatte dem med nye tekster i hovedfil, sidehoved, sidefod, kommentarer osv. og fremhæve resultaterne efter behov.

1. Åbn en Word-fil, og klik derefter på Kutools Plus > Batch Find og erstat, se skærmbillede:

2. I åbnet Batch Find og erstat dialogboksen, skal du udføre følgende handlinger:

  • Klik Tilføj knappen for at tilføje de Word-filer, hvor du vil finde og erstatte tekster;
  • Klik på i venstre rude Tilføj række fra det øverste bånd;
  • Indtast den oprindelige tekst og ny tekst i det indsatte felt Finde , udskifte kolonner separat, som du vil finde og erstatte. Du kan også angive en farve til at fremhæve de erstattede tekster efter behov.

3. Når du har oprettet søgekriterierne, skal du klikke udskifte knappen for at gå til Eksempel på resultat fanen for at se resultaterne for at finde og erstatte. Se skærmbillede:

4. Klik derefter på Luk knappen, og en promptboks vises for at minde dig om, hvis du vil gemme dette scenarie, skal du klikke Ja for at gemme det, og klik på Ingen for at ignorere det, se skærmbillede:

Tips: Denne funktion kan også hjælpe med at opnå følgende handlinger:
  • Find og erstat specialtegn i flere Word-dokumenter;
  • Find og erstat flere strenge med specifik formatering i flere Word-dokumenter;
  • Find og erstat flere strenge i flere txt/htm/html-filer.

Klik for at få mere detaljerede oplysninger om denne funktion...

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver 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