Tips: Andre språk er Google-oversatt. Du kan besøke English versjon av denne lenken.
Logg inn
x
or
x
x
Registrere
x

or

Hvordan søke og erstatte over flere filer i ord?

Hvis du har flere dusin ordfiler som inneholder det samme innholdet (for eksempel Header, footer, noen spesielle ord eller nummer), og du må erstatte det samme innholdet på tvers av disse dokumentene i Word. Hvordan ville det være lettere for deg å få det gjort raskt? Sikkert, du kan åpne disse filene en etter en for å erstatte det samme innholdet, men det vil være tidkrevende og plagsomt. Denne opplæringen vil vise deg en vanskelig måte å erstatte det samme innholdet i flere dokumenter i Word samtidig.

Finn og erstatt tekster på tvers av flere orddokumenter samtidig med VBA-kode


Kombiner / flett flere dokumenter til en enkelt:

De Slå sammen dokumenter nytte av Kutools for Word kan hjelpe deg å kombinere flere dokumenter raskt til en. Du trenger bare å:

  • Velg dokumentene du vil kombinere til en;
  • Angi pause mellom hvert kombinert dokument;
  • Begynn å slå sammen. Se skjermbilde:

Kutools for Word: Med mer enn 100 praktiske Word-tillegg, gratis å prøve uten begrensning i 30-dager. Last ned og gratis prøveversjon nå!

Kutools for Word: Legg til 100 nye avanserte funksjoner til Word 2003 / 2007 / 2010 / 2013 / 2016 / 2019.
Office-fanen: Aktiver Tabbed redigering og surfing på kontoret, Akkurat som Chrome, Firefox, IE 8 / 9 / 10.
Klassisk meny for Office: Ta med gammel titt på Office 2003 Tilbake til Office 2007, 2010, 2013, 2016 og 2019.

Finn og erstatt tekster på tvers av flere orddokumenter samtidig med VBA-kode

1. Pressen andre + F11 å åpne Microsoft Visual Basic for Applications vinduet.

2. I Microsoft Visual Basic for Applications vinduet klikker innfelt > Modules, og kopier deretter følgende VBA-kode til modulvinduet.

VBA-kode: Søker og erstatter samme innhold på tvers av flere dokumenter samtidig

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. trykk F5 nøkkel for å kjøre koden.

4. I åpningen Søk vindu, finn og velg dokumentene du finner og erstatt tekst inni, og klikk deretter på OK knapp. Se skjermbilde:

5. I det første Kutools for Word dialogboksen, skriv inn teksten du finner over dokumenter i Finn det boksen, og klikk deretter på OK knapp.

6. I den andre Kutools for Word dialogboksen, skriv inn teksten du vil erstatte med, og klikk på OK knapp.

8. Klikk OK knappen i neste Microsoft Word dialogboksen for å fullføre funnet og erstatte.

I dette tilfellet erstattes alle ordene "Word" i utvalgte dokumenter samtidig med "Excel".


Office-fanen - Tabbed Browsing, redigering og administrering av flere dokumenter i Word:

Office-kategorien bringer tabbedgrensesnittet som sett i nettlesere som Google Chrome, Internet Explorer, nye versjoner og Firefox til Microsoft Word. Den vil Vær et tidsbesparende verktøy og uerstattelig i arbeidet ditt. Se under demo:

Klikk for gratis prøveversjon av Office-fanen!




Kutools for Word

Mer enn 100 Avanserte funksjoner for Word 2003, 2007, 2010, 2013, 2016 og 2019

Skudd-kutools-700-225-KTE

Flere funksjoner | Gratis nedlasting | Bare $ 39.00 for hundrevis av funksjoner

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?