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应用程序 窗口。

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 按钮,现在,文本被找到并替换为您指定文档中的新文本,并且文件也正在打开,您应该保存它以保留更改。


使用 VBA 代码从 Excel 中查找和替换多个 Word 文档中的多个文本

在这里,我还创建了一个 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 而不是 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保护