Прескочи на основното съдържание

Как да намеря и заменя текст в документ на Word от Excel?

Автор: Xiaoyang Последна промяна: 2022-09-08

В документ на 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 Scripting Runtime опции от списъчното поле, вижте екранната снимка:

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

5. Щракнете OK в изскачащия диалогов прозорец натиснете Ctrl клавиш, за да изберете отделно оригиналния текст и новите текстови колони, които искате да използвате, вижте екранната снимка:

6, Накрая кликнете върху OKи оригиналните текстове се заменят с новите в тези файлове, след завършване ще се появи диалогов прозорец, както е показано на екранната снимка по-долу:

7. Щракнете OK за да затворите диалоговия прозорец. И можете да отидете до файловете, за да проверите преобразуваните резултати.


Намерете и заменете множество текстове в множество документи на Word с мощна функция

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

1. Отворете един файл на Word и след това щракнете Kutools плюс > Пакетно намиране и замяна, вижте екранна снимка:

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 за 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