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.