Перейти к основному содержанию

Как найти и заменить текст в документе 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, Затем нажмите Вставить > Модули, скопируйте и вставьте приведенный ниже код 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 для приложений окна, нажмите Инструменты > Рекомендации, см. снимок экрана:

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, Затем нажмите Вставить > Модули, скопируйте и вставьте приведенный ниже код 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 для приложений окна, нажмите Инструменты > Рекомендации, В Ссылки - VBAProject в диалоговом окне выберите Библиотека объектов Microsoft Word 16.0 и Среда выполнения сценариев Microsoft варианты из списка, см. снимок экрана:

4. После проверки двух вариантов и нажмите OK , чтобы закрыть диалоговое окно, а затем продолжайте нажимать F5 ключ для выполнения этого кода, в открытии ЛИСТАТЬ СПИСКИ выберите папку, содержащую документы Word, для которых вы хотите выполнить поиск и замену, см. снимок экрана:

5. Нажмите OK кнопку, в появившемся диалоговом окне нажмите Ctrl чтобы выбрать исходный текст и новые текстовые столбцы отдельно, которые вы хотите использовать, см. снимок экрана:

6, Наконец, нажмите OK, и исходные тексты заменяются новыми в этих файлах, после завершения появится диалоговое окно, как показано ниже:

7. Нажмите OK чтобы закрыть диалог. И вы можете перейти к файлам, чтобы проверить преобразованные результаты.


Находите и заменяйте несколько текстов в нескольких документах Word с помощью мощной функции.

В этом разделе я расскажу о том, как выполнять пакетный поиск и замену текстов в нескольких документах Word из Word вместо Excel. С мощным инструментом-Kutools for Word, вы можете быстро найти и заменить определенные тексты и заменить их новыми текстами в основном файле, заголовке, нижнем колонтитуле, комментариях и т. д. и выделить результаты по мере необходимости.

1. Откройте один файл Word и нажмите Кутулс Плюс > Пакетный поиск и замена, см. снимок экрана:

2. В открытом Пакетный поиск и замена диалоговом окне выполните следующие действия:

  • Нажмите Добавить кнопка для добавления файлов Word, в которых вы хотите найти и заменить тексты;
  • На левой панели нажмите Добавить ряд из верхней ленты;
  • Во вставленном поле введите исходный текст и новый текст в поле Найдите и Замените столбцы отдельно, которые вы хотите найти и заменить. Также вы можете указать цвет для выделения заменяемых текстов по своему усмотрению.

3. После создания критериев поиска нажмите Замените кнопку, чтобы перейти к Результат предварительного просмотра вкладку для просмотра результатов поиска и замены. Смотрите скриншот:

4, Затем нажмите Закрыть кнопку, и появится всплывающее окно, чтобы напомнить вам, хотите ли вы сохранить этот сценарий, нажмите Да чтобы сохранить его, и нажмите Нет чтобы проигнорировать это, см. снимок экрана:

Советы: Эта функция также может помочь выполнить следующие операции:
  • Поиск и замена специальных символов в нескольких документах Word;
  • Найдите и замените несколько строк определенным форматированием в нескольких документах Word;
  • Найдите и замените несколько строк в нескольких файлах txt/htm/html.

Нажмите, чтобы узнать более подробную информацию об этой функции…

Лучшие инструменты для офисной работы

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

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 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