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.