Note: The other languages of the website are Google-translated. Back to English

如何從 Excel 中查找和替換 Word 文檔中的文本?

在 Word 文檔中,我們可以應用查找和替換功能快速查找和替換一個文本。 但是,如果需要查找和替換多個文本,將文本逐個輸入到查找和替換功能中會很耗時。 在這種情況下,您可以將查找和替換文本輸入到單元格列表中,並在 Excel 中的 VBA 代碼的幫助下輕鬆完成這項工作。 在本文中,我還將介紹一個有用的功能,可以批量查找和替換多個 Word 文檔中的文本。

使用 VBA 代碼從 Excel 中查找和替換一個 Word 文檔中的多個文本

使用 VBA 代碼從 Excel 中查找和替換多個 Word 文檔中的多個文本

使用強大的功能查找和替換多個 Word 文檔中的多個文本


使用 VBA 代碼從 Excel 中查找和替換一個 Word 文檔中的多個文本

如果您只想在一個 Word 文件中查找和替換某些文本,下面的 VBA 代碼可以幫到您。

1. 在 Excel 工作表中,創建一個包含要查找和替換的文本的列,以及另一個包含要替換的文本的列,如下圖所示。 然後按 Alt + F11 同時打開 Microsoft Visual Basic for Applications 窗口。

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 for Applications 窗口中,單擊 工具 > 參考,請參見屏幕截圖:

4。 在彈出的 參考– VBAProject 對話框中,選擇 Microsoft Word 16.0對像庫 從列錶框中,看截圖:

5。 點擊 OK 按鈕關閉對話框,現在,按 F5 鍵運行此代碼,在彈出的瀏覽窗口中,選擇要替換文本的 Word 文件,看截圖:

6。 然後,點擊 OK, 在以下對話框中,按 按Ctrl 鍵分別選擇要使用的原始文本和新文本單元格,請參見屏幕截圖:

7。 然後,單擊 OK 按鈕,現在,文本被找到並替換為您指定文檔中的新文本,並且文件也正在打開,您應該保存它以保留更改。


使用 VBA 代碼從 Excel 中查找和替換多個 Word 文檔中的多個文本

在這裡,我還創建了一個 VBA 代碼,用於在多個 Word 文檔中查找和替換多個文本,請這樣做:

1. 打開包含兩列要替換和替換的值的 Excel 文件,如下圖所示,然後按 Alt + F11 同時打開 Microsoft Visual Basic for Applications 窗口。

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 for Applications 窗口中,單擊 工具 > 參考參考– VBAProject 對話框中,選擇 Microsoft Word 16.0對像庫Microsoft腳本運行時 列錶框中的選項,請參見屏幕截圖:

4. 勾選兩個選項後,點擊 OK 關閉對話框,然後繼續按 F5 執行此代碼的關鍵,在開頭 瀏覽 窗口,選擇一個文件夾,其中包含要執行查找和替換的 Word 文檔,看截圖:

5。 點擊 OK 按鈕,在彈出的對話框中,按 按Ctrl 鍵分別選擇要使用的原始文本和新文本列,請參見屏幕截圖:

6。 最後點擊 OK, 並將這些文件中的原始文本替換為新文本,完成後會彈出一個對話框,如下圖所示:

7。 點擊 OK 關閉對話框。 您可以轉到文件來檢查轉換後的結果。


使用強大的功能查找和替換多個 Word 文檔中的多個文本

本節,我將討論如何從 Word 而不是 Excel 中批量查找和替換多個 Word 文檔中的文本。 借助強大的工具——Kutools for Word,您可以快速查找和替換特定文本,並將其替換為主文件、頁眉、頁腳、註釋等中的新文本,並根據需要突出顯示結果。

1. 打開一個 Word 文件,然後單擊 Kutools 加 > 批量查找和替換,請參見屏幕截圖:

2。 在開 批量查找和替換 對話框,請執行以下操作:

  • 點擊 加入 按鈕添加要查找和替換文本的 Word 文件;
  • 在左側窗格中,單擊 添加行 從頂部功能區;
  • 在插入的字段中,將原始文本和新文本輸入到 發現更換 要查找和替換的單獨列。 同樣,您可以根據需要指定一種顏色來突出顯示替換的文本。

3. 創建搜索條件後,單擊 更換 按鈕去 預覽結果 選項卡以查看查找和替換結果。 看截圖:

4。 然後,點擊 關閉 按鈕,會彈出提示框提醒您是否要保存該場景,點擊 保存它,然後單擊 沒有 要忽略它,請參見屏幕截圖:

保養竅門:此功能還可以幫助實現以下操作:
  • 查找和替換多個Word文檔中的特殊字符;
  • 在多個 Word 文檔中查找並替換具有特定格式的多個字符串;
  • 在多個 txt/htm/html 文件中查找和替換多個字符串。

單擊以了解此功能的更多詳細信息...


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (4)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
的問候,
第一個代碼:
VBA 代碼:在一個 Word 文件中查找和替換多個文本

thows 錯誤:編譯錯誤用戶定義類型未定義
https://i.imgur.com/FZPBy4I.png
網站主持人對此評論進行了最小化
你好,埃里克
代碼運行良好。
也許,你沒有檢查 Microsoft Word 16.0對像庫 來自 參考– VBAProject 對話框。
這意味著您可能會錯過本文的第 3 步和第 4 步。
請重試,如果您還有其他問題,請在此處評論。

https://www.extendoffice.com/images/stories/comments/comment-skyyang/2023-comment/doc-find-replace-word-file-excel.png
網站主持人對此評論進行了最小化
它不起作用。

編譯錯誤:未定義用戶定義類型
網站主持人對此評論進行了最小化
你好,參數
代碼運行良好。
也許,你沒有檢查 Microsoft Word 16.0對像庫 來自 參考– VBAProject 對話框。
這意味著您可能會錯過本文的第 3 步和第 4 步。
請重試,如果您還有其他問題,請在此處評論。
https://www.extendoffice.com/images/stories/comments/comment-skyyang/2023-comment/doc-find-replace-word-file-excel.png
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護