¿Cómo "buscar y reemplazar" por lotes en archivos doc?

¿Cómo "buscar y reemplazar" por lotes en archivos doc?

Tengo varios archivos .doc con la siguiente estructura:

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

Los bloques de texto inútil son los mismos en todos los archivos.

¿Cómo elimino por lotes estos bloques inútiles sin dañar el formato, las imágenes y los hipervínculos en texto útil?

Respuesta1

Puede intentar grabar una macro de VBA a partir de sus acciones de eliminación manual y luego ejecutar esa macro (manualmente) en cada documento que necesite procesar. ¿Sabes cómo grabar macros VBA en Word? Si los bloques de texto siempre comienzan y terminan con el mismo texto, entonces debería ser relativamente fácil y ahorrarle parte o la mayor parte del trabajo.

Respuesta2

Paso 1:Presione "Alt-F11" para abrir la ventana Microsoft Visual Basic para aplicaciones.

Paso 2:Haga clic en Módulo en la pestaña Insertar, copie y pegue el siguiente código VBA en la ventana Módulo.

Paso 3:Luego haga clicCorrerBotón (F5) para aplicar VBA.

VBA: buscar y reemplazar el mismo contenido en varios documentos a la vez

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

Nota:puede cambiar Texto = "buscar”, Reemplazo.Texto = "buscar” para especificar el contenido que se buscará y el contenido que se aplicará para reemplazo.

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

Crédito: extenderoffice

Respuesta3

Tuve este problema todo el tiempo cuando trabajaba en ingeniería civil y necesitaba realizar múltiples cambios con grandes cantidades de documentos de proyecto a la vez; un programa como este (o similar) lo solucionó;

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

El mío abrió todos los archivos de MS Word y Excel en un directorio y buscó/reemplazó por lotes muchas variables a la vez; este parece que también puede hacer Powerpoint.

Respuesta4

Existe la herramienta en línea.https://batch-edit.comque es de uso gratuito exactamente para este caso de uso. Puede crear una expresión regular y reemplazar el texto coincidente en todos los archivos doc simultáneamente con un texto vacío.

Descargo de responsabilidad completo: soy el autor de la herramienta.

información relacionada