Přejít k hlavnímu obsahu

Jak najít a nahradit text v dokumentu Word z Excelu?

Autor: Xiaoyang Naposledy změněno: 2022-09-08

V dokumentu aplikace Word můžeme použít funkci Najít a nahradit, abychom rychle našli a nahradili jeden text. Pokud je však potřeba najít a nahradit více textů, zadávat text jeden po druhém do funkce Najít a nahradit bude časově náročné. V tomto případě můžete zadat vyhledání a nahrazení textů do seznamu buněk a pomocí kódu VBA v Excelu tuto práci snadno provést. V tomto článku také představím užitečnou funkci pro hromadné vyhledávání a nahrazování textů ve více dokumentech aplikace Word.

Najděte a nahraďte více textů v jednom dokumentu aplikace Word z Excelu kódem VBA

Najděte a nahraďte více textů ve více dokumentech aplikace Word z Excelu kódem VBA

Najděte a nahraďte více textů ve více dokumentech aplikace Word pomocí výkonné funkce


Najděte a nahraďte více textů v jednom dokumentu aplikace Word z Excelu kódem VBA

Pokud chcete najít a nahradit některé texty pouze v jednom souboru aplikace Word, může vám pomoci následující kód VBA.

1. V listu aplikace Excel vytvořte sloupec obsahující texty, které chcete najít a nahradit, a další sloupec s texty, které chcete nahradit, jak je znázorněno na obrázku níže. A pak stiskněte Alt + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

2. Potom klepněte na tlačítko Vložit > Modul, zkopírujte a vložte níže uvedený kód VBA do okna.

Kód VBA: Najděte a nahraďte více textů v jednom souboru aplikace Word

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. Po vložení kódu stále v Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko Tools > Reference, viz screenshot:

4. Ve vyskakovacím okně Reference - VBAProject dialogové okno vyberte Knihovna objektů Microsoft Word 16.0 ze seznamu, viz snímek obrazovky:

5, klikněte OK zavřete dialogové okno a nyní stiskněte F5 klíč ke spuštění tohoto kódu, ve vyskakovacím okně Procházet vyberte soubor Word, ve kterém chcete nahradit texty, viz snímek obrazovky:

6. Potom klepněte na tlačítko OK, v následujícím dialogovém okně stiskněte Ctrl tlačítko pro výběr původního textu a nových textových buněk samostatně, které chcete použít, viz snímek obrazovky:

7. A pak klikněte OK Nyní jsou texty nalezeny a nahrazeny novými texty ve vašem zadaném dokumentu a soubor se také otevírá, měli byste jej uložit, abyste zachovali změny.


Najděte a nahraďte více textů ve více dokumentech aplikace Word z Excelu kódem VBA

Zde také vytvořím kód VBA pro vyhledání a nahrazení více textů ve více dokumentech aplikace Word, postupujte takto:

1. Otevřete soubor Excel, který obsahuje dva sloupce hodnot, které chcete nahradit a nahradit, jak je znázorněno na níže uvedeném snímku obrazovky, a stiskněte Alt + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

2. Potom klepněte na tlačítko Vložit > Modul, zkopírujte a vložte níže uvedený kód VBA do okna.

Kód VBA: Najděte a nahraďte více textů ve více souborech aplikace Word

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. Stále v Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko Tools > Reference, V roce Reference - VBAProject dialogové okno vyberte Knihovna objektů Microsoft Word 16.0 a Microsoft Scripting Runtime možnosti ze seznamu, viz snímek obrazovky:

4. Po zaškrtnutí dvou možností klikněte na OK zavřete dialogové okno a poté pokračujte stisknutím tlačítka F5 klíč k provedení tohoto kódu v otevření Procházet vyberte složku obsahující dokumenty aplikace Word, které chcete vyhledat a nahradit, viz snímek obrazovky:

5, klikněte OK ve vyskakovacím dialogovém okně stiskněte Ctrl klíč pro výběr původního textu a nových textových sloupců samostatně, které chcete použít, viz snímek obrazovky:

6. Nakonec klepněte na tlačítko OKa původní texty jsou v těchto souborech nahrazeny novými, po dokončení se objeví dialogové okno, jak je uvedeno na obrázku níže:

7, klikněte OK pro uzavření dialogu. A můžete přejít do souborů a zkontrolovat převedené výsledky.


Najděte a nahraďte více textů ve více dokumentech aplikace Word pomocí výkonné funkce

V této části budu hovořit o tom, jak dávkově vyhledat a nahradit texty ve více dokumentech aplikace Word z aplikace Word namísto aplikace Excel. S výkonným nástrojem -Kutools pro Word, můžete rychle najít a nahradit konkrétní texty a nahradit je novými texty v hlavním souboru, záhlaví, zápatí, komentářích atd. a zvýraznit výsledky, jak potřebujete.

1. Otevřete jeden soubor aplikace Word a potom klepněte na tlačítko Kutools Plus > Dávkové hledání a nahrazení, viz screenshot:

2. V otevřeném Dávkové hledání a nahrazení V dialogovém okně proveďte následující operace:

  • klikněte přidat tlačítko pro přidání souborů aplikace Word, kde chcete najít a nahradit texty;
  • V levém podokně klikněte na Přidat řádek z horní stuhy;
  • Do vloženého pole zadejte původní text a nový text do Najít a Nahradit sloupce samostatně, které chcete najít a nahradit. Můžete také určit barvu pro zvýraznění nahrazených textů, jak potřebujete.

3. Po vytvoření vyhledávacích kritérií klikněte Nahradit pro přechod na Výsledek náhledu zobrazíte výsledky hledání a nahrazení. Viz snímek obrazovky:

4. Potom klepněte na tlačítko zavřít a zobrazí se okno s výzvou, které vám připomene, zda chcete tento scénář uložit, klepněte na Ano uložte jej a klikněte na Ne ignorovat, viz screenshot:

Tipy: Tato funkce také může pomoci při provádění následujících operací:
  • Najít a nahradit speciální znaky ve více dokumentech aplikace Word;
  • Najít a nahradit více řetězců specifickým formátováním ve více dokumentech aplikace Word;
  • Najděte a nahraďte více řetězců ve více souborech txt/htm/html.

Kliknutím získáte podrobnější informace o této funkci…

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations