I cookie ci aiutano i nostri servizi. Utilizzando i nostri servizi, l'utente accetta di utilizzare i cookie.
Suggerimento: le altre lingue sono tradotte da Google. Puoi visitare il English versione di questo link.
Log In
x
or
x
x
Registrati
x

or

Come cercare e sostituire su più file in una parola?

Se si dispone di una dozzina di file word contenenti lo stesso contenuto (come intestazione, piè di pagina, alcune parole o numeri speciali), è necessario sostituire lo stesso contenuto in tali documenti in Word. Come sarebbe più facile per te farlo in fretta? Certamente, è possibile aprire quei file uno per uno per sostituire lo stesso contenuto, ma richiedere molto tempo e problemi. Questo tutorial ti mostrerà un modo complicato per sostituire lo stesso contenuto in più documenti in Word contemporaneamente.

Trova e sostituisci testi su più documenti word contemporaneamente con il codice VBA


Combina / unisci più documenti in uno facilmente:

L' Unisci documenti utilità di Kutools for Word può aiutarti a combinare più documenti in uno rapidamente. Hai solo bisogno di:

  • Seleziona i documenti che combinerai in uno;
  • Specificare la pausa tra ogni documento combinato;
  • Iniziare la fusione. Vedi screenshot:

Kutools for Word: con più di 100 utili componenti aggiuntivi di Word, liberi di provare senza limiti nei giorni 30. Scarica e prova gratis ora!

Kutools for Word: Aggiungi 100 Nuove funzionalità avanzate a Word 2003 / 2007 / 2010 / 2013 / 2016 / 2019.
Office Tab: Abilitare Modifica a schede e navigazione in ufficio, Proprio come Chrome, Firefox, IE 8 / 9 / 10.
Classic Menu for Office: Porta il vecchio aspetto di Office 2003 Back a Office 2007, 2010, 2013, 2016 e 2019.

Trova e sostituisci testi su più documenti word contemporaneamente con il codice VBA

1. Stampa altro + F11 per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Nel Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Modulo, quindi copia il seguente codice VBA nella finestra del modulo.

Codice VBA: ricerca e sostituzione dello stesso contenuto su più documenti contemporaneamente

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. premi il F5 chiave per eseguire il codice.

4. In apertura Navigare finestra, cerca e seleziona i documenti che troverai e sostituisci il testo all'interno, quindi fai clic su OK pulsante. Vedi screenshot:

5. Nel primo Kutools for Word finestra di dialogo, inserisci il testo che troverai tra i documenti nel Trova quello che casella, quindi fare clic su OK pulsante.

6. Nel secondo Kutools for Word finestra di dialogo, inserire il testo con cui si sostituirà e fare clic su OK pulsante.

8. Fare clic sul OK pulsante nel prossimo Microsoft Word finestra di dialogo per completare la ricerca e la sostituzione.

In questo caso, tutte le parole "Word" nei documenti selezionati vengono sostituite con "Excel" allo stesso tempo.


Office Tab - Navigazione a schede, modifica e gestione di più documenti in Word:

Office Tab porta l'interfaccia a schede come si vede nei browser Web come Google Chrome, le nuove versioni di Internet Explorer e Firefox in Microsoft Word. esso volere essere uno strumento che fa risparmiare tempo e che è irrealizzabile nel tuo lavoro. Vedi sotto demo:

Clicca per la prova gratuita di Office Tab!




Kutools for Word

Più di 100 Funzioni avanzate per Word 2003, 2007, 2010, 2013, 2016 e 2019

tiro-kutools-700-225-kte

Altre caratteristiche | Scarica gratis | Solo $ 39.00 per centinaia di funzioni

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.
    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?
  • To post as a guest, your comment is unpublished.
    Muralisk · 4 years ago
    Worked like a charm and it did save a lot of time and effort for me. Thanks.