Перейти до основного матеріалу

Як знайти та замінити текст у документі Word із Excel?

У документі Word ми можемо застосувати функцію «Знайти та замінити», щоб швидко знайти та замінити один текст. Але, якщо потрібно знайти та замінити кілька текстів, введення тексту по одному у функцію «Знайти та замінити» займе багато часу. У цьому випадку ви можете ввести текст пошуку та заміни в список клітинок і за допомогою коду VBA в Excel легко виконати цю роботу. У цій статті я також розповім про корисну функцію пакетного пошуку та заміни текстів у кількох документах Word.

Знайдіть і замініть кілька текстів в одному документі Word із Excel кодом VBA

Знайдіть і замініть кілька текстів у кількох документах Word із Excel кодом VBA

Знайдіть і замініть кілька текстів у кількох документах Word за допомогою потужної функції


Знайдіть і замініть кілька текстів в одному документі Word із Excel кодом VBA

Якщо ви хочете знайти та замінити деякі тексти лише в одному файлі Word, наведений нижче код VBA може зробити вам послугу.

1. На робочому аркуші Excel створіть стовпець, що містить тексти, які потрібно знайти та замінити, а також інший стовпець із текстами, які потрібно замінити, як показано на знімку екрана нижче. А потім натисніть Alt + F11 клавіші одночасно, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Потім натисніть кнопку Insert > Модулі, скопіюйте та вставте наведений нижче код VBA у вікно.

Код VBA: знайдіть і замініть кілька текстів в одному файлі 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. Після вставки коду все ще в Microsoft Visual Basic для додатків вікна, натисніть Tools > посилання, див. скріншот:

4. У вискочив Посилання - VBAProject діалоговому вікні, виберіть Бібліотека об’єктів Microsoft Word 16.0 зі списку, перегляньте знімок екрана:

5. Клацання OK щоб закрити діалогове вікно, а тепер натисніть F5 щоб запустити цей код, у спливаючому вікні «Огляд» виберіть файл Word, яким потрібно замінити тексти, перегляньте знімок екрана:

6. Потім натисніть кнопку OK, у наступному діалоговому вікні натисніть Ctrl клавіша для виділення оригінального тексту та нових текстових клітинок окремо, які ви бажаєте використовувати, див. знімок екрана:

7. А потім натисніть OK кнопку, тепер тексти знайдено та замінено новими текстами у вказаному вами документі, а також відкривається файл, вам слід зберегти його, щоб зберегти зміни.


Знайдіть і замініть кілька текстів у кількох документах Word із Excel кодом VBA

Тут я також створюю код VBA для пошуку та заміни кількох текстів у кількох документах Word, виконайте наступне:

1. Відкрийте файл Excel, який містить два стовпці значень, які потрібно замінити, і замініть, як показано на знімку екрана нижче, а потім натисніть Alt + F11 клавіші одночасно, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Потім натисніть кнопку Insert > Модулі, скопіюйте та вставте наведений нижче код VBA у вікно.

Код VBA: знайдіть і замініть кілька текстів у кількох файлах 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. Досі в Microsoft Visual Basic для додатків вікна, натисніть Tools > посилання, В Посилання - VBAProject діалоговому вікні, виберіть Бібліотека об’єктів Microsoft Word 16.0 та Виконання сценаріїв Microsoft параметри зі списку, див. знімок екрана:

4. Після перевірки двох варіантів натисніть OK щоб закрити діалогове вікно, а потім продовжуйте натискати F5 ключ для виконання цього коду, у відкритті перегорнути виберіть папку, яка містить документи Word, які потрібно знайти та замінити, перегляньте знімок екрана:

5. Клацання OK кнопку, у спливаючому діалоговому вікні натисніть Ctrl клавіша для вибору оригінального тексту та нових текстових стовпців окремо, які ви бажаєте використовувати, див. знімок екрана:

6. Нарешті, клацніть OK, а вихідні тексти замінюються новими у файлах тез. Після завершення з’явиться діалогове вікно, як показано на знімку екрана нижче:

7. Клацання OK щоб закрити діалогове вікно. І ви можете перейти до файлів, щоб перевірити перетворені результати.


Знайдіть і замініть кілька текстів у кількох документах Word за допомогою потужної функції

У цьому розділі я розповім про те, як групово знаходити та замінювати тексти в кількох документах Word із Word замість Excel. З потужним інструментом -Kutools для Word, ви можете швидко знайти та замінити певні тексти та замінити їх новими текстами в основному файлі, верхньому та нижньому колонтитулах, коментарях тощо та виділити результати, як вам потрібно.

1. Відкрийте один файл Word і клацніть Kutools Plus > Пакетний пошук та заміна, див. скріншот:

2. У відкритому Пакетний пошук та заміна діалоговому вікні, виконайте такі дії:

  • Натисніть додавати кнопка для додавання файлів Word, де потрібно знайти та замінити тексти;
  • На лівій панелі натисніть Додати рядок з верхньої стрічки;
  • У вставлене поле введіть вихідний текст і новий текст у знайти та заміщати окремо стовпці, які потрібно знайти та замінити. Крім того, ви можете вказати колір для виділення замінених текстів, як вам потрібно.

3. Після створення критеріїв пошуку натисніть заміщати кнопка, щоб перейти до Результат попереднього перегляду для перегляду результатів пошуку та заміни. Перегляньте скріншот:

4. Потім натисніть кнопку близько кнопку, і з’явиться вікно підказки, щоб нагадати вам, якщо ви хочете зберегти цей сценарій, натисніть Так щоб зберегти його та натисніть Немає щоб проігнорувати це, див. скріншот:

Tips : ця функція також може допомогти виконати такі операції:
  • Знайти та замінити спеціальні символи в кількох документах Word;
  • Знайти та замінити кілька рядків певним форматуванням у кількох документах Word;
  • Знайдіть і замініть кілька рядків у кількох файлах txt/htm/html.

Натисніть, щоб дізнатися більше про цю функцію…

Найкращі інструменти продуктивності офісу

🤖 Kutools AI Aide: Революціонізуйте аналіз даних на основі: Інтелектуальне виконання   |  Згенерувати код  |  Створення спеціальних формул  |  Аналізуйте дані та створюйте діаграми  |  Викликати функції Kutools...
Популярні функції: Знайдіть, виділіть або визначте дублікати   |  Видалити порожні рядки   |  Об’єднайте стовпці або клітинки без втрати даних   |   Раунд без Формули ...
Супер пошук: VLookup за кількома критеріями    Багатозначний VLookup  |   VLookup на кількох аркушах   |   Нечіткий пошук ....
Розширений розкривний список: Швидке створення випадаючого списку   |  Залежний спадний список   |  Виберіть розкривний список, що вибирається ....
Менеджер колонок: Додайте конкретну кількість стовпців  |  Перемістити стовпці  |  Перемкнути статус видимості прихованих стовпців  |  Порівняйте діапазони та стовпці ...
Особливості: Фокус сітки   |  Перегляд дизайну   |   Велика панель формул    Диспетчер робочих книг і аркушів   |  Бібліотека ресурсів (автотекст)   |  Вибір дати   |  Об’єднайте робочі аркуші   |  Шифрування/розшифрування клітинок    Надсилайте листи за списком   |  Супер фільтр   |   Спеціальний фільтр (фільтр жирний/курсив/закреслений...) ...
Топ-15 наборів інструментів12 текст Tools (додати текст, Видалити символи, ...)   |   50 + Графік типи (діаграма Ганта, ...)   |   40+ Практичний Формули (Розрахуйте вік на основі дня народження, ...)   |   19 вставка Tools (Вставте QR-код, Вставити зображення зі шляху, ...)   |   12 Перетворення Tools (Числа до слів, Валютна конверсія, ...)   |   7 Злиття та розділення Tools (Розширені комбіновані ряди, Розділені клітини, ...)   |   ... і більше

Покращуйте свої навички Excel за допомогою Kutools для Excel і відчуйте ефективність, як ніколи раніше. Kutools для Excel пропонує понад 300 додаткових функцій для підвищення продуктивності та економії часу.  Натисніть тут, щоб отримати функцію, яка вам найбільше потрібна...

Опис


Вкладка Office Передає інтерфейс із вкладками в Office і значно полегшує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
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