Wie kann ich „Suchen und Ersetzen“ in Doc-Dateien stapelweise ausführen?

Wie kann ich „Suchen und Ersetzen“ in Doc-Dateien stapelweise ausführen?

Ich habe mehrere .doc-Dateien mit der folgenden Struktur:

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

Blöcke mit nutzlosem Text sind in allen Dateien gleich.

Wie lösche ich diese nutzlosen Blöcke stapelweise, ohne die Formatierung, Bilder und Hyperlinks im nützlichen Text zu beschädigen?

Antwort1

Sie könnten versuchen, ein VBA-Makro Ihrer manuellen Löschvorgänge aufzuzeichnen und dieses Makro dann (manuell) in jedem Dokument auszuführen, das Sie verarbeiten müssen. Wissen Sie, wie man VBA-Makros in Word aufzeichnet? Wenn die Textblöcke immer mit demselben Text beginnen und enden, sollte das relativ einfach sein und Ihnen einen Teil oder den Großteil der Arbeit ersparen.

Antwort2

Schritt 1:Drücken Sie „Alt-F11“, um das Fenster „Microsoft Visual Basic für Anwendungen“ zu öffnen.

Schritt 2:Klicken Sie auf der Registerkarte Einfügen auf Modul, kopieren Sie den folgenden VBA-Code und fügen Sie ihn in das Modulfenster ein.

Schritt 3:Dann klickLaufen(F5), um VBA anzuwenden.

VBA: Suchen und Ersetzen desselben Inhalts in mehreren Dokumenten gleichzeitig

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

Notiz:Sie können Text = "Suchen", Ersetzungstext = "Finden" ändern, um den zu durchsuchenden Inhalt und den zum Ersetzen anzuwendenden Inhalt anzugeben.

.Text = "search" 'Find What 
.Replacement.Text = "find" 'Replace With 

Bildnachweis: extendoffice

Antwort3

Dieses Problem hatte ich ständig, als ich im Bauingenieurwesen arbeitete und mehrere Änderungen an einer großen Menge an Projektdokumenten gleichzeitig vornehmen musste – ein Programm wie dieses (oder ein ähnliches) hat es für mich behoben;

https://www.etsy.com/listing/1468077519/smart-replace-pro-automated-find-replace

Meines hat alle MS Word- und Excel-Dateien in einem Verzeichnis geöffnet und mehrere Variablen gleichzeitig im Stapel gesucht/ersetzt – dieses hier sieht aus, als könne es auch mit Powerpoint umgehen.

Antwort4

Es gibt das Online-Toolhttps://batch-edit.comdas genau für diesen Anwendungsfall kostenlos verwendet werden kann. Sie können einen regulären Ausdruck erstellen und den übereinstimmenden Text in allen Doc-Dateien gleichzeitig durch einen leeren Text ersetzen.

Vollständiger Haftungsausschluss: Ich bin der Autor des Tools.

verwandte Informationen