Como "encontrar e substituir" em lote em arquivos doc?

Como "encontrar e substituir" em lote em arquivos doc?

Tenho vários arquivos .doc com a seguinte estrutura:

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

Blocos de texto inútil são iguais em todos os arquivos.

Como excluo em lote esses blocos inúteis sem corromper a formatação, as imagens e os hiperlinks em textos úteis?

Responder1

Você pode tentar gravar uma macro VBA a partir de suas ações de exclusão manual e, em seguida, executar essa macro (manualmente) em cada documento que precisar processar. Você sabe como gravar macros VBA no Word? Se os blocos de texto sempre começam e terminam com o mesmo texto, isso deve ser relativamente fácil e poupar parte ou a maior parte do trabalho.

Responder2

Passo 1:Pressione “Alt-F11” para abrir a janela Microsoft Visual Basic for Application.

Passo 2:Clique em Módulo na guia Inserir, copie e cole o seguinte código VBA na janela Módulo.

Etapa 3:Então cliqueCorrer(F5) para aplicar o VBA.

VBA: pesquisando e substituindo o mesmo conteúdo em vários documentos ao mesmo tempo

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

Observação:você pode alterar Text = "search”, Replacement.Text = "find” para especificar o conteúdo a ser pesquisado e o conteúdo a ser aplicado para substituição.

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

Crédito: extendoffice

Responder3

Eu tive esse problema o tempo todo quando trabalhei na engenharia civil, precisando fazer diversas alterações em grandes quantidades de documentos de projeto de uma só vez - um programa como este (ou similar) resolveu isso para mim;

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

O meu abriu todos os arquivos do MS Word e Excel em um diretório e localizou/substituiu em lote muitas variáveis ​​de uma só vez - este parece que também pode fazer o Powerpoint.

Responder4

Existe a ferramenta onlinehttps://batch-edit.comque é gratuito para uso exatamente neste caso de uso. Você pode criar uma regex e substituir o texto correspondente em todos os arquivos de documento simultaneamente por um texto vazio.

Isenção de responsabilidade completa: eu sou o autor da ferramenta.

informação relacionada