Dica: outros idiomas são traduzidos pelo Google. Você pode visitar o English versão deste link.
Entrar
x
or
x
x
Cadastre-se
x

or

Como pesquisar e substituir em vários arquivos em palavra?

Se você tiver vários arquivos de dezenas de palavras que contenham o mesmo conteúdo (como Cabeçalho, rodapé, algumas palavras especiais ou número), e você precisa substituir o mesmo conteúdo por esses documentos no Word. Como seria mais fácil para você fazer isso rapidamente? Certamente, você pode abrir esses arquivos, um por um, para substituir o mesmo conteúdo, mas será demorado e problemático. Este tutorial irá mostrar-lhe uma maneira complicada de substituir o mesmo conteúdo em vários documentos no Word de uma só vez.

Encontre e substitua textos em vários documentos do word ao mesmo tempo com o código VBA


Combine / mescle vários documentos em um facilmente:

O Mesclar Documentos utilidade de Kutools for Word pode ajudá-lo a combinar vários documentos em um rapidamente. Você só precisa:

  • Selecione os documentos que você irá combinar em um;
  • Especifique a quebra entre cada documento combinado;
  • Comece a mesclar. Veja a captura de tela:

Kutools for Word: com mais de 100 suplementos do Word, livre para tentar sem limitações em 30 dias. Baixe e teste grátis agora!

Kutools for Word: Adicionar 100 Novos recursos avançados para o Word 2003 / 2007 / 2010 / 2013 / 2016 / 2019.
Office Tab: Habilitar Edição e navegação com guias no Office, Just Like Chrome, Firefox, IE 8 / 9 / 10.
Classic Menu for Office: Traga o Old Look do Office 2003 Voltar para Office 2007, 2010, 2013, 2016 e 2019.

Encontre e substitua textos em vários documentos do word ao mesmo tempo com o código VBA

1. Pressione outro + F11 para abrir o Microsoft Visual Basic para Aplicações janela.

2. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo, copie o seguinte código VBA na janela do módulo.

Código VBA: Pesquisando e substituindo o mesmo conteúdo em vários documentos ao mesmo tempo

Sub CommandButton1_Click()
'Updated by Extendoffice 20180625
Dim xFileDialog As FileDialog, GetStr(1 To 100) As String '100 files is the maximum applying this code
Dim xFindStr As String
Dim xReplaceStr As String
Dim xDoc As Document
On Error Resume Next
Set xFileDialog = Application.FileDialog(msoFileDialogFilePicker)
With xFileDialog
    .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
    xFindStr = InputBox("Find what:", "Kutools for Word", xFindStr)
    xReplaceStr = InputBox("Replace with:", "Kutools for Word", xReplaceStr)
    For j = 1 To i Step 1
        Set xDoc = Documents.Open(FileName:=GetStr(j), Visible:=True)
        Windows(GetStr(j)).Activate
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = xFindStr  'Find What
            .Replacement.Text = xReplaceStr  '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

3. aperte o F5 chave para executar o código.

4. Na abertura procurar janela, localize e selecione os documentos que encontrará e substitua o texto por dentro e, em seguida, clique no OK botão. Ver captura de tela:

5. Em primeiro Kutools for Word caixa de diálogo, insira o texto que você encontrará nos documentos no Encontre o que caixa e, em seguida, clique no botão OK botão.

6. No segundo Kutools for Word caixa de diálogo, insira o texto com o qual você irá substituir e clique no OK botão.

8. Clique na OK botão no próximo Microsoft Word caixa de diálogo para concluir a localização e substituição.

Nesse caso, todas as palavras "Word" nos documentos selecionados são substituídas por "Excel" ao mesmo tempo.


Office Tab - Navegação com guias, edição e gerenciamento de vários documentos no Word:

O Tab do Office traz a interface com guias, como visto em navegadores da Web, como o Google Chrome, as novas versões do Internet Explorer e o Firefox no Microsoft Word. isto vontade ser uma ferramenta que economiza tempo e insubstituível em seu trabalho. Veja abaixo a demonstração:

Clique para a versão gratuita do Office Tab!




Kutools for Word

Mais do que as funções avançadas 100 para Word 2003, 2007, 2010, 2013, 2016 e 2019

Shot-kutools-700-225-kte

mais recursos | Download grátis | Apenas $ 39.00 para centenas de funções

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Dani · 4 years ago
    This worked perfectly and saved me so much time. Thank you!
  • To post as a guest, your comment is unpublished.
    Pia · 4 years ago
    It only runs across selected files and files must be in one folder only. This is run as a macro in a word doc. It is run from clicking a button. It only updates word doc's Hope this helps.


    Private 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
    '~~> Change this file extention to the relevant doc type.
    .Filters.Add "All WORD File ", "*.doc", 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

    For i = 1 To doc.Hyperlinks.Count
    'If the hyperlink matches.
    If LCase(doc.Hyperlinks(i).Address) = "http://www.yahoo.co.uk/" Then
    'Change the links address.
    doc.Hyperlinks(i).Address = "https://www.google.co.uk"
    'Change the links display text if desired.
    doc.Hyperlinks(i).TextToDisplay = "www.google.co.uk"
    End If
    Next
    Application.Run macroname:="NEWMACROS"
    ActiveDocument.Save
    ActiveDocument.Close
    Next
    Application.ScreenUpdating = True
    End With
    MsgBox "operation end, please view", vbInformation
    End Sub
  • To post as a guest, your comment is unpublished.
    Pia Wilson · 4 years ago
    You then add one of the following two sections depending on if it is test or hyperlink to be replaced

    '~~> This section if uncommented will replace text - ONLY ONE OF TWO SECTIONS CAN BE UNCOMMENTED AT ONCE


    With Selection.Find
    .Text = "www.google.co.uk" 'Find What
    .Replacement.Text = "www.google.com" '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
    ActiveDocument.Close
    Next
    Application.ScreenUpdating = True
    End With
    MsgBox "operation end, please view", vbInformation


    '~~> This section if uncommented will replace hyperlinks
    'For i = 1 To doc.Hyperlinks.Count
    ' 'If the hyperlink matches.
    ' If LCase(doc.Hyperlinks(i).Address) = "http://www.google.co.uk/" Then
    ' 'Change the links address.
    ' doc.Hyperlinks(i).Address = "https://www.google.com"
    ' 'Change the links display text if desired.
    ' doc.Hyperlinks(i).TextToDisplay = "www.google.com"
    ' End If
    ' Next
    'Application.Run macroname:="NEWMACROS"
    'ActiveDocument.Save
    'ActiveDocument.Close
    'Next
    'Application.ScreenUpdating = True
    'End With
    'MsgBox "operation end, please view", vbInformation



    End Sub
    • To post as a guest, your comment is unpublished.
      segarn · 4 years ago
      Hi Pia,
      I am trying to run your script for replacing hyperlinks but am getting errors. Any chance you can post the script for replacing hyperlinks all in 1 piece? I must be messing something up when trying to patch your code together.
  • To post as a guest, your comment is unpublished.
    Pia Wilson · 4 years ago
    This is what finally worked for me. I hope it helps. I added this macro to a word file. It will run the replace any documents selected (you can select as many as you like) when the file dialoge is open. It wont work on sub folders so I did each folder in the file structure individually but it worked.It may not be the best fix but it works at least.


    Private 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
    '~~> Change this file extention to the relevant doc type.
    .Filters.Add "All WORD File ", "*.doc", 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
    'Section then either one or the other of sections of code to follow.
  • To post as a guest, your comment is unpublished.
    Greg Simonis · 4 years ago
    I still cannot get this to work on my PC running Windows 7.
    When I run it, I get an error msg at the line:
    -Windows(GetStr(j)).Activate
    The error msg. is:
    -Compile error:
    -Sub or Function not defined
    Any idea why? And how to fix it?