Przejdź do głównej zawartości

Jak znaleźć i zamienić tekst w dokumencie programu Word z programu Excel?

W dokumencie Word możemy zastosować funkcję Znajdź i zamień, aby szybko znaleźć i zamienić jeden tekst. Jeśli jednak trzeba znaleźć i zastąpić wiele tekstów, wprowadzanie tekstu jeden po drugim do funkcji Znajdź i zamień będzie czasochłonne. W takim przypadku możesz wprowadzić wyszukiwane i zastępowane teksty na liście komórek i za pomocą kodu VBA w programie Excel, aby z łatwością wykonać tę pracę. W tym artykule przedstawię również przydatną funkcję do grupowego wyszukiwania i zastępowania tekstów w wielu dokumentach programu Word.

Znajdź i zamień wiele tekstów w jednym dokumencie programu Word z programu Excel na kod VBA

Znajdź i zamień wiele tekstów w wielu dokumentach Word z Excela kodem VBA

Znajdź i zamień wiele tekstów w wielu dokumentach Word za pomocą potężnej funkcji


Znajdź i zamień wiele tekstów w jednym dokumencie programu Word z programu Excel na kod VBA

Jeśli chcesz znaleźć i zamienić niektóre teksty tylko w jednym pliku Word, poniższy kod VBA może ci wyświadczyć przysługę.

1. W arkuszu programu Excel utwórz kolumnę zawierającą teksty, które chcesz znaleźć i zamienić, oraz kolejną kolumnę z tekstami do zastąpienia, jak pokazano na zrzucie ekranu. A następnie naciśnij Alt + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.

2. Następnie kliknij wstawka > Moduł, skopiuj i wklej poniższy kod VBA do okna.

Kod VBA: znajdź i zamień wiele tekstów w jednym pliku 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 wklejeniu kodu nadal w Microsoft Visual Basic for Applications okno, kliknij Tools > Referencjezobacz zrzut ekranu:

4. W wyskoczył Referencje - VBAProject w oknie dialogowym wybierz opcję Biblioteka obiektów programu Microsoft Word 16.0 z pola listy, zobacz zrzut ekranu:

5. Kliknij OK przycisk, aby zamknąć okno dialogowe, a teraz naciśnij F5 klucz, aby uruchomić ten kod, w wyskakującym oknie Przeglądaj wybierz plik Word, który chcesz zastąpić teksty, zobacz zrzut ekranu:

6. Następnie kliknij OK, w następującym oknie dialogowym naciśnij Ctrl klawisz, aby wybrać oryginalny tekst i nowe komórki tekstowe osobno, których chcesz użyć, zobacz zrzut ekranu:

7. A następnie kliknij OK przycisk, teraz teksty zostaną znalezione i zastąpione nowymi tekstami w określonym dokumencie, a plik również się otwiera, należy go zapisać, aby zachować zmiany.


Znajdź i zamień wiele tekstów w wielu dokumentach Word z Excela kodem VBA

Tutaj również tworzę kod VBA do wyszukiwania i zastępowania wielu tekstów w wielu dokumentach Word, wykonaj następujące czynności:

1. Otwórz plik Excel, który zawiera dwie kolumny wartości do zastąpienia i zastąpienia, jak pokazano na poniższym zrzucie ekranu, a następnie naciśnij Alt + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.

2. Następnie kliknij wstawka > Moduł, skopiuj i wklej poniższy kod VBA do okna.

Kod VBA: znajdź i zamień wiele tekstów w wielu plikach 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. Wciąż w Microsoft Visual Basic for Applications okno, kliknij Tools > Referencje, W Referencje - VBAProject w oknie dialogowym wybierz opcję Biblioteka obiektów programu Microsoft Word 16.0 i Środowisko wykonawcze skryptów firmy Microsoft Microsoft opcje z pola listy, zobacz zrzut ekranu:

4. Po sprawdzeniu dwóch opcji i kliknięciu OK aby zamknąć okno dialogowe, a następnie naciśnij przycisk F5 klawisz do wykonania tego kodu, w otworze Przeglądaj w oknie wybierz folder zawierający dokumenty Word, które chcesz znaleźć i zamienić, zobacz zrzut ekranu:

5. Kliknij OK , w wyskakującym oknie dialogowym naciśnij Ctrl klawisz, aby wybrać oryginalny tekst i nowe kolumny tekstowe osobno, których chcesz użyć, zobacz zrzut ekranu:

6. Na koniec kliknij OK, a oryginalne teksty są zastępowane nowymi w tych plikach, po zakończeniu pojawi się okno dialogowe, jak pokazano na poniższym zrzucie ekranu:

7. Kliknij OK aby zamknąć okno dialogowe. I możesz przejść do plików, aby sprawdzić przekonwertowane wyniki.


Znajdź i zamień wiele tekstów w wielu dokumentach Word za pomocą potężnej funkcji

W tej sekcji omówię, jak wsadowo znajdować i zastępować teksty w wielu dokumentach programu Word z programu Word zamiast programu Excel. Z potężnym narzędziem-Kutools dla Worda, możesz szybko znaleźć i zastąpić określone teksty i zastąpić je nowymi tekstami w pliku głównym, nagłówku, stopce, komentarzach itp. oraz podświetlić wyniki według potrzeb.

1. Otwórz jeden plik Word, a następnie kliknij Kutools Plus > Znajdź i zamień partiizobacz zrzut ekranu:

2. W otwartym Znajdź i zamień partii w oknie dialogowym, wykonaj następujące operacje:

  • Kliknij Dodaj przycisk, aby dodać pliki Word, w których chcesz znaleźć i zamienić teksty;
  • W lewym okienku kliknij Dodaj wiersz od górnej wstążki;
  • We wstawionym polu wprowadź oryginalny tekst i nowy tekst do Znajdź i zastąpić kolumny osobno, które chcesz znaleźć i zamienić. Możesz także określić kolor podświetlenia zastępowanych tekstów według potrzeb.

3. Po utworzeniu kryteriów wyszukiwania kliknij zastąpić przycisk, aby przejść do Wynik podglądu , aby wyświetlić wyniki wyszukiwania i zamiany. Zobacz zrzut ekranu:

4. Następnie kliknij Zamknij i pojawi się okienko z przypomnieniem, czy chcesz zapisać ten scenariusz, kliknij Tak aby go zapisać i kliknij Nie aby to zignorować, zobacz zrzut ekranu:

Tips: Ta funkcja może również pomóc w realizacji następujących operacji:
  • Znajdź i zamień znaki specjalne w wielu dokumentach programu Word;
  • Znajdź i zamień wiele ciągów z określonym formatowaniem w wielu dokumentach programu Word;
  • Znajdź i zamień wiele ciągów w wielu plikach txt/htm/html.

Kliknij, aby dowiedzieć się więcej szczegółowych informacji o tej funkcji…

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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