Como agrupar “find-n-replace” em arquivos doc?

1

Eu tenho vários arquivos .doc com a seguinte estrutura:

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

Blocos de texto inútil são os mesmos entre os arquivos.

Como faço para excluir em lote esses blocos inúteis sem corromper a formatação, as imagens e os hiperlinks em texto útil?

    
por David Bryant 09.12.2015 / 09:50

2 respostas

1

Você pode tentar gravar uma macro VBA de suas ações de exclusão manuais 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çarem e terminarem com o mesmo texto, isso deve ser relativamente fácil e poupar um pouco ou a maior parte do trabalho.

    
por 09.12.2015 / 10:34
0

Etapa 1: Pressione "Alt-F11" para abrir a janela Microsoft Visual Basic for Application.

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

Etapa 3: Em seguida, clique no botão Executar (F5) para aplicar o VBA.

VBA: pesquisando e substituindo o mesmo conteúdo em vários documentos de uma só 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

Observação: você pode alterar o texto="pesquisar", substituir.Texto="localizar" 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

    
por 03.02.2016 / 02:59