如何在文档文件中批量“查找和替换”?

如何在文档文件中批量“查找和替换”?

我有多个具有以下结构的 .doc 文件:

[useless text #1]
[useful text]
[useless text #2]

各个文件中无用的文本块都是相同的。

如何批量删除这些无用的块而不破坏有用文本中的格式、图片和超链接?

答案1

您可以尝试从手动删除操作中录制 VBA 宏,然后在需要处理的每个文档中(手动)执行该宏。您知道如何在 Word 中录制 VBA 宏吗?如果文本块始终以相同的文本开始和结束,那么这应该相对容易,并且可以为您节省部分或大部分工作。

答案2

步骤1:按“Alt-F11”打开 Microsoft Visual Basic for Application 窗口。

第2步:单击“插入”选项卡上的“模块”,将以下 VBA 代码复制并粘贴到“模块”窗口中。

步骤3:然后点击跑步(F5)按钮应用 VBA。

VBA:一次在多个文档中搜索和替换相同的内容

Sub CommandButton1_Click()
Dim MyDialog As FileDialog, GetStr(1 To 100) As String '100 files is the maximum applying this code
On Error Resume Next
Set MyDialog = Application.FileDialog(msoFileDialogFilePicker) 
With MyDialog 
.Filters.Clear 
.Filters.Add "All WORD File ", "*.docx", 1 
.AllowMultiSelect = True
i = 1 
If .Show = -1 Then
For Each stiSelectedItem In .SelectedItems 
GetStr(i) = stiSelectedItem
i = i + 1 
Next
i = i - 1 
End If 
Application.ScreenUpdating = False
For j = 1 To i Step 1
Set Doc = Documents.Open(FileName:=GetStr(j), Visible:=True)
Windows(GetStr(j)).Activate
Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting
With Selection.Find 
.Text = "search" 'Find What 
.Replacement.Text = "find" 'Replace With 
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Application.Run macroname:="NEWMACROS"
ActiveDocument.Save
ActiveWindow.Close
Next
Application.ScreenUpdating = True
End With
MsgBox "operation end, please view", vbInformation
End Sub

笔记:你可以通过改变Text = “search”,Replacement.Text = “find”来指定要搜索的内容和要应用替换的内容。

.Text = "search" 'Find What 
.Replacement.Text = "find" 'Replace With 

图片来源:extendoffice

答案3

我在从事土木工程工作时一直遇到这个问题,需要同时对大量项目文档进行多项更改 - 像这样的程序(或类似的程序)为我解决了这个问题;

https://www.etsy.com/listing/1468077519/smart-replace-pro-automated-find-replace

我打开了一个目录中的所有 MS Word 和 Excel 文件,并一次性批量查找/替换了许多变量 - 这个看起来也可以用于 Powerpoint。

答案4

有在线工具https://batch-edit.com这对于此用例而言是免费使用的。您可以创建一个正则表达式,并同时用空文本替换所有 doc 文件中匹配的文本。

完整免责声明:我是该工具的作者。

相关内容