Как выполнить пакетную операцию «найти и заменить» в doc-файлах?

Как выполнить пакетную операцию «найти и заменить» в doc-файлах?

У меня есть несколько файлов .doc со следующей структурой:

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

Блоки бесполезного текста одинаковы во всех файлах.

Как мне удалить эти бесполезные блоки пакетом, не повредив форматирование, изображения и гиперссылки в полезном тексте?

решение1

Вы можете попробовать записать макрос VBA из ваших действий по удалению вручную, а затем выполнить этот макрос (вручную) в каждом документе, который вам нужно обработать. Вы знаете, как записывать макросы VBA в Word? Если текстовые блоки всегда начинаются и заканчиваются одним и тем же текстом, то это должно быть относительно просто и сэкономить вам часть или большую часть работы.

решение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 одновременно пустым текстом.

Полный отказ от ответственности: я являюсь автором инструмента.

Связанный контент