Note: The other languages of the website are Google-translated. Back to English

Como pesquisar e substituir vários arquivos no Word?

Se você tiver várias dezenas de arquivos de palavras com o mesmo conteúdo (como cabeçalho, rodapé, algumas palavras ou números especiais) e precisar substituir o mesmo conteúdo nesses 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 mostrará uma maneira complicada de substituir o mesmo conteúdo em vários documentos no Word de uma vez.

Encontre e substitua textos em documentos de várias palavras ao mesmo tempo com o código VBA
Encontre e substitua facilmente textos diferentes em vários documentos ao mesmo tempo com o Kutools para Word


Encontre e substitua textos em documentos de várias palavras 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çãoMóduloe, em seguida, copie o seguinte código VBA na janela Módulo.

Código VBA: pesquisar e substituir 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, por favor encontre e selecione os documentos que você irá encontrar e substitua o texto dentro, e então clique no OK botão. Veja a imagem:

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

6. Na segunda Kutools for Word caixa de diálogo, digite o texto que você 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.


Encontre e substitua facilmente textos diferentes em vários documentos ao mesmo tempo com o Kutools para Word

Aqui recomendo fortemente o Localização e substituição em lote característica de Kutools for Word. Com esse recurso, você pode localizar e substituir facilmente textos diferentes em vários documentos do Word ao mesmo tempo. Vamos ver como aplicar esse recurso para localizar e substituir textos em documentos.

Kutools for Word : com mais de 100 suplementos úteis do Word, grátis para experimentar sem limitação em 60 dias.

1. Clique em Kutools Plus > Localização e substituição em lote para habilitar o recurso.

2. No Localização e substituição em lote caixa de diálogo, configure como segue.

  • 2.1) Clique no Adicionar linha botão sob o Localizar e substituir aba;
  • 2.2) Nos campos da linha criada:
A. Digite o texto que você encontrará na caixa de texto no Procure coluna
B. Digite o texto que você substituirá na caixa de texto no substituir coluna;
C. Especifique um tipo de pesquisa, onde encontrar o texto e uma cor para realçar o texto conforme necessário. Neste caso, eu seleciono Correspondência de palavras completas, Documento principal e uma certa cor do Tipo de busca, Encontre em e às Realçar colunas;
  • 2.3) Repita os passos 2.1 e 2.2 para adicionar mais textos que você vai encontrar e substituir;
  • 2.4) Clique no  botão no Tipo de arquivo seção para adicionar os documentos do Word nos quais você vai encontrar e substituir textos;
  • 2.5) Clique no substituir or Procure botão. Veja a imagem:

Notas:
1. Se você clicar no Procure botão, todos os resultados encontrados serão exibidos sob o Resultado da Antevisão aba. Depois de visualizar os resultados, se você deseja substituir todos os textos, clique no Localizar e substituir aba. Caso contrário, feche a caixa de diálogo.

2. Se você clicar no substituir botão, todos os textos especificados serão substituídos por novos imediatamente, e os resultados também serão exibidos sob o Resultado da Antevisão aba.

3. Se você especificar as cores de destaque na etapa 2, todos os textos substituídos serão destacados com as cores especificadas e você pode encontrá-los facilmente em um relance nos documentos.

3. Feche o Localização e substituição em lote caixa de diálogo

Para obter mais informações sobre este recurso, por favor clique aqui ....

Se você deseja ter um teste gratuito deste utilitário, vá para baixe gratuitamente o software primeiro e, em seguida, aplique a operação de acordo com as etapas acima.


Ferramentas de produtividade de palavras recomendadas

 

Kutools para Word - Mais de 100 recursos avançados para Word, economize 50% do tempo

  • Operações complicadas e repetidas podem ser executadas com processamento único em segundos.
  • Insira várias imagens em pastas em um documento do Word de uma vez.
  • Mescle e combine vários arquivos do Word em pastas em um na ordem desejada.
  • Divida o documento atual em documentos separados de acordo com o título, quebra de seção ou outros critérios.
  • Converta arquivos entre Doc e Docx, Docx e PDF, coleção de ferramentas para conversões e seleção comuns, e assim por diante ...
Comentários (69)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Perguntará onde se encontram os documentos em questão? Ou todos os documentos precisam estar abertos?
Este comentário foi feito pelo moderador no site
Ao executá-lo, por padrão, ele abrirá a janela de diálogo "Abrir arquivo" para "Meus documentos". Navegue até a pasta que contém os arquivos do Word nos quais você deseja fazer as alterações. Você pode pressionar "Ctrl" + "A" para selecionar todos os arquivos ou manter pressionada a tecla "Ctrl" enquanto seleciona determinados arquivos. Clique em "Abrir" ou pressione "Enter" e veja a mágica acontecer.
Este comentário foi feito pelo moderador no site
Sim, eu tenho a mesma pergunta, pois acho que isso seria útil, mas quero dizer para procurar apenas em determinadas pastas.
Este comentário foi feito pelo moderador no site
Ao executar a macro, a janela "Abrir" será aberta. Navegue até a pasta que contém os arquivos para os quais você precisa fazer a alteração, clique uma vez no primeiro e, mantendo pressionada a tecla "Ctrl", clique nos outros arquivos que também exigem a localização/substituição. Se todos os arquivos da pasta precisarem da ação, basta pressionar as teclas “Ctrl” e “A”. Em seguida, clique em "Abrir" ou pressione a tecla "Enter" e a macro começará. Devo avisá-lo, pois já fiz isso dezenas de vezes no trabalho: A macro resultará nas alterações sendo feitas apenas no *corpo* do documento do Word; cabeçalhos, rodapés e texto de título/texto alternativo serão excluídos. Se você tiver texto nas partes mencionadas acima que precisa ser substituído, você terá que executar uma busca/substituição padrão em documentos individuais.
Este comentário foi feito pelo moderador no site
Essa técnica VBA pode ser adaptada para funcionar com arquivos do Publisher? Por exemplo, alterando *.docx para *.pub ?
Este comentário foi feito pelo moderador no site
Uau, você é um santo por montar essa macro! Estou ouvindo 'Epic Battle Music' no Songza porque sou um Macro-smith tão amador e é a única maneira de superar a dor e a agonia de criar feitiços de programação. De qualquer forma, o que quero dizer é que gastei muito tempo na sexta-feira solucionando problemas na parte em que você realmente coloca o texto que deseja encontrar e coloca o texto que deseja substituir - não entendi muito bem essa parte em termos de onde coloco meu texto de palavra "localizar" e texto de palavra "substituir": [quote]Nota: você pode alterar o Text = "search", Replacement.Text = "find" para especificar o conteúdo a ser pesquisado e o conteúdo a solicitar a substituição. [/quote] Eu li isso novamente hoje e gostaria de esclarecer respeitosamente para outros não-iniciados de programação - na seção do VBA onde você copiou e colou a linguagem de programação original, certifique-se de colocar um fim ' após o o que e um 'após o com (veja o exemplo abaixo) - no meu exemplo, estou procurando vários documentos para substituir Pizza por Stromboli: .Text = "Pizza" 'Find What' .Replacement.Text = "Stromboli" 'Replace With'
Este comentário foi feito pelo moderador no site
Quando eu o executo, ele trava e para em: Application.Run macroname:="NEWMACROS" e quando eu entro nele, ele me diz que tenho um erro de compilação: argumento nomeado não encontrado. O que agora?
Este comentário foi feito pelo moderador no site
Funcionou como um encanto e economizou muito tempo e esforço para mim. Obrigado.
Este comentário foi feito pelo moderador no site
Ainda não consigo fazer isso funcionar no meu PC com Windows 7. Quando o executo, recebo uma mensagem de erro na linha: -Windows(GetStr(j)).Activate The error msg. é: -Erro de compilação: -Sub ou função não definida Alguma idéia do porquê? e como consertar isso?
Este comentário foi feito pelo moderador no site
Isto é o que finalmente funcionou para mim. Espero que ajude. Eu adicionei esta macro a um arquivo do Word. Ele executará a substituição de todos os documentos selecionados (você pode selecionar quantos quiser) quando a caixa de diálogo do arquivo estiver aberta. Não funcionará em subpastas, então fiz cada pasta na estrutura de arquivos individualmente, mas funcionou. Pode não ser a melhor correção, mas funciona pelo menos. Private Sub CommandButton1_Click() Dim MyDialog As FileDialog, GetStr(1 To 100) As String '100 files é o máximo para aplicar este código Em erro Resume Next Set MyDialog = Application.FileDialog(msoFileDialogFilePicker) With MyDialog .Filters.Clear '~~> Altere esta extensão de arquivo para o tipo de documento relevante. .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 Para j = 1 Para i Etapa 1 Definir doc = Documents.Open(FileName:=GetStr(j), Visible:=True) Windows(GetStr(j)). Ativar Seleção. Find.ClearFormatting Selection.Find.Replacement.ClearFormatting 'Seção então uma ou outra das seções de código a seguir.
Este comentário foi feito pelo moderador no site
Você então adiciona uma das duas seções a seguir, dependendo se for teste ou hiperlink a ser substituído '~~> Esta seção, se não comentada, substituirá o texto - SOMENTE UMA DAS DUAS SEÇÕES PODE SER NÃO COMENTADA DE UMA VEZ Com Selection.Find .Text = " http://www.google.co.uk" 'Localizar .Replacement.Text = "http://www.google.com" 'Substituir por .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = Falso .MatchByte = Verdadeiro .MatchWildcards = Falso .MatchSoundsLike = Falso .MatchAllWordForms = Falso Finalizar com Selection.Find.Execute Replace:=wdReplaceAll Application.Run macroname:="NEWMACROS" ActiveDocument.Save ActiveDocument.Close Next Application.ScreenUpdating = True End With MsgBox "operação finalizada, por favor veja", vbInformation '~~> Esta seção, se não comentada, substituirá os hiperlinks 'For i = 1 To doc.Hyperlinks.Count ' 'Se o hiperlink corresponder. ' If LCase(doc.Hyperlinks(i).Address) = "http://www.google.co.uk/" Then ' 'Mude o endereço dos links. ' doc.Hyperlinks(i).Address = "https://www.google.com" ' 'Mude o texto de exibição dos links se desejar. ' doc.Hyperlinks(i).TextToDisplay = "http://www.google.com" ' End If ' Next 'Application.Run macroname:="NEWMACROS" 'ActiveDocument.Save 'ActiveDocument.Close 'Next 'Application.ScreenUpdating = True 'End With 'MsgBox "operação final, por favor veja", vbInformation End Sub
Este comentário foi feito pelo moderador no site
Oi Pia, estou tentando executar seu script para substituir hiperlinks, mas estou recebendo erros. Alguma chance de você postar o script para substituir os hiperlinks em 1 peça? Devo estar atrapalhando alguma coisa ao tentar consertar seu código.
Este comentário foi feito pelo moderador no site
Ele só é executado em arquivos selecionados e os arquivos devem estar em apenas uma pasta. Isso é executado como uma macro em um documento do Word. Ele é executado a partir de clicar em um botão. Ele apenas atualiza o Word doc Espero que isso ajude. Private Sub CommandButton1_Click() Dim MyDialog As FileDialog, GetStr(1 To 100) As String '100 files é o máximo para aplicar este código Em erro Resume Next Set MyDialog = Application.FileDialog(msoFileDialogFilePicker) With MyDialog .Filters.Clear '~~> Altere esta extensão de arquivo para o tipo de documento relevante. .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 Para j = 1 Para i Etapa 1 Definir doc = Documents.Open(FileName:=GetStr(j), Visible:=True) Windows(GetStr(j)). Ativar Seleção. Find.ClearFormatting Selection.Find.Replacement.ClearFormatting For i = 1 To doc.Hyperlinks.Count 'Se o hiperlink corresponder. If LCase(doc.Hyperlinks(i).Address) = "http://www.yahoo.co.uk/" Then 'Alterar o endereço dos links. doc.Hyperlinks(i).Address = "https://www.google.co.uk" 'Altere o texto de exibição dos links se desejar. doc.Hyperlinks(i).TextToDisplay = "http://www.google.co.uk" End If Next Application.Run macroname:="NEWMACROS" ActiveDocument.Save ActiveDocument.Close Next Application.ScreenUpdating = True End With MsgBox " fim da operação, por favor veja", vbInformation End Sub
Este comentário foi feito pelo moderador no site
Isso funcionou perfeitamente e me economizou muito tempo. Obrigada!
Este comentário foi feito pelo moderador no site
Olá, Isso funcionou muito bem para a palavra no corpo do documento, mas não substituiu a mesma palavra no cabeçalho. Alguma ideia. Obrigado
Este comentário foi feito pelo moderador no site
Eu quero mudar o formato do texto de substituição. ou seja, "Pizza" deve ser substituído por "Burger". Como isso pode ser alcançado?
Este comentário foi feito pelo moderador no site
Big THX 4 o código... mas também tem aquele prblm com os cabeçalhos... sem alteração Obrigado desde já
Este comentário foi feito pelo moderador no site
Obrigado por postar isso! Eu executei alguns testes e consegui que funcionasse para mim; no entanto, não está funcionando em texto em cabeçalhos e rodapés por algum motivo. Existe uma correção para isso?
Este comentário foi feito pelo moderador no site
Sinto muito, mas não tenho idéia dos cabeçalhos ou do formato. Não era algo que eu precisava incluir no meu código. Eu nunca havia usado isso antes e o código que postei foi retirado do código original acima e depois ajustado usando o código encontrado em outras pesquisas até funcionar. Lamento não poder ajudar mais.
Este comentário foi feito pelo moderador no site
Eu tenho testado nos últimos minutos e é realmente uma maravilha, obrigado! Preciso executar várias rotinas de 'localizar e substituir' para vários arquivos. Dezenas de rotinas para dezenas de arquivos. Existe uma forma de 'salvar' o módulo para não precisar colá-lo novamente na tela do VBA toda vez que precisar realizar uma nova rotina?
Este comentário foi feito pelo moderador no site
É possível ajustar essa macro para executar várias posições de 'localizar e substituir' de uma só vez? Existem várias palavras e frases que preciso substituir e, a partir de agora, preciso reinserir o código VBA para cada instância. sou noob nessas coisas
Este comentário foi feito pelo moderador no site
Este código economizou muito tempo para mim... então, obrigado! Uma coisa, porém - existe alguma maneira de aumentar o número de palavras que a macro encontra/substitui? Preciso localizar/substituir vários parágrafos de uma só vez e a macro parece ter um limite de aproximadamente 200 caracteres.
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos