Im heutigen Artikel möchten wir Ihnen die Schritte zum Batch-Extrahieren aller Lesezeichen aus Ihrem Word-Dokument mitteilen, um sie gleichzeitig anzuzeigen.
In Word können Sie mit der integrierten Funktion ein Inhaltsverzeichnis oder ein Zahlenverzeichnis erstellen. Letztendlich werden Sie jedoch feststellen, dass es keine übliche Möglichkeit gibt, alle Lesezeichen eines Dokuments zu extrahieren und in einem neuen Dokument anzuordnen.
Wie immer ist es unsere Mission, Sie durch den Mythos zu führen und Ihnen die Makro-Möglichkeit zu bieten, alle Lesezeichen sowie deren Texte in ein neues leeres Dokument zu exportieren.
Batch-Extrahieren aller Lesezeichen aus einem einzelnen Dokument
- Öffnen Sie zunächst das Zieldokument und drücken Sie „Alt+ F11“, um den VBA-Editor aufzurufen.
- Klicken Sie anschließend auf "Normal" und dann auf "Einfügen".
- Und wählen Sie "Modul", um unter "Normal" ein neues zu erstellen.
- Doppelklicken Sie dann darauf, um den Bearbeitungsbereich zu öffnen.
- Fügen Sie dort das folgende Makro ein:
Sub ExtractBookmarksInADoc()
Dim objBookmark As Bookmark
Dim objTable As Table
Dim nRow As Integer
Dim objDoc As Document, objNewDoc As Document
Dim objParagraph As Paragraph
Set objDoc = ActiveDocument
If objDoc.Bookmarks.Count = 0 Then
MsgBox ("There is no bookmark in this document.")
Else
Set objNewDoc = Documents.Add
Selection.TypeText Text:="Bookmarks in " & "'" & objDoc.Name & "'"
Set objTable = Selection.Tables.Add(Range:=Selection.Range, numrows:=1, numcolumns:=3)
objTable.Borders.Enable = True
nRow = 1
For Each objParagraph In objNewDoc.Paragraphs
If objParagraph.Range.Style = "Caption" Then
objParagraph.Range.Delete
End If
Next objParagraph
With objTable
.Cell(1, 1).Range.Text = "Name"
.Cell(1, 2).Range.Text = "Texts"
.Cell(1, 3).Range.Text = "Page Number"
For Each objBookmark In objDoc.Bookmarks
objTable.Rows.Add
nRow = nRow + 1
.Cell(nRow, 1).Range.Text = objBookmark.Name
.Cell(nRow, 2).Range.Text = objBookmark.Range.Text
.Cell(nRow, 3).Range.Text = objBookmark.Range.Information(wdActiveEndAdjustedPageNumber)
objDoc.Hyperlinks.Add Anchor:=.Cell(nRow, 3).Range, Address:=objDoc.Name, _
SubAddress:=objBookmark.Name, TextToDisplay:=.Cell(nRow, 3).Range.Text
Next objBookmark
End With
End If
objNewDoc.SaveAs2 FileName:=objDoc.Path & "\" & "Bookmarks in " & objDoc.Name
End Sub
- Klicken Sie zu guter Letzt auf "Ausführen".
Alle Lesezeichen des aktuellen Dokuments werden in einer Tabelle in einem neuen Dokument abgelegt, das im selben Verzeichnis wie die Originaldatei gespeichert ist.
Sie können eine Tabelle mit 3 Spalten im neuen Dokument sehen. Wenn Sie „Strg + Klick“ befolgen, gelangen Sie zum Lesezeichen im Originaldokument.
Batch-Extrahieren von Lesezeichen aus mehreren Dokumenten
Befolgen Sie die oben beschriebenen Schritte, um ein Makro zu installieren und auszuführen. Nur dieses Mal ersetzen Sie die Codes durch die folgenden:
Sub ExtractBookmarksInMultiDoc()
Dim objBookmark As Bookmark
Dim objTable As Table
Dim nRow As Integer
Dim objDoc As Document, objNewDoc As Document
Dim objParagraph As Paragraph
Dim strFolder As String, strFile As String
strFolder = InputBox("Enter folder path here: ")
strFile = Dir(strFolder & "*.docx", vbNormal)
While strFile <> ""
Set objDoc = Documents.Open(FileName:=strFolder & strFile)
Set objDoc = ActiveDocument
Set objNewDoc = Documents.Add
Selection.TypeText Text:="Bookmarks in " & "'" & objDoc.Name & "'"
Set objTable = Selection.Tables.Add(Range:=Selection.Range, numrows:=1, numcolumns:=3)
objTable.Borders.Enable = True
nRow = 1
For Each objParagraph In objNewDoc.Paragraphs
If objParagraph.Range.Style = "Caption" Then
objParagraph.Range.Delete
End If
Next objParagraph
With objTable
.Cell(1, 1).Range.Text = "Name"
.Cell(1, 2).Range.Text = "Texts"
.Cell(1, 3).Range.Text = "Page Number"
For Each objBookmark In objDoc.Bookmarks
objTable.Rows.Add
nRow = nRow + 1
.Cell(nRow, 1).Range.Text = objBookmark.Name
.Cell(nRow, 2).Range.Text = objBookmark.Range.Text
.Cell(nRow, 3).Range.Text = objBookmark.Range.Information(wdActiveEndAdjustedPageNumber)
objDoc.Hyperlinks.Add Anchor:=.Cell(nRow, 3).Range, Address:=objDoc.Name, _
SubAddress:=objBookmark.Name, TextToDisplay:=.Cell(nRow, 3).Range.Text
Next objBookmark
End With
objNewDoc.SaveAs2 FileName:=objDoc.Path & "\" & "Bookmarks in " & objDoc.Name
objDoc.Close
strFile = Dir()
Wend
End Sub
Sobald Sie das Makro ausgeführt haben, gibt es ein Eingabefeld. Geben Sie den Ordnerpfad ein, in dem Sie alle Dokumente speichern. Und denk dran Fügen Sie am Ende des Pfads "\" hinzu Wenn Sie es nur aus dem Ordner-Textfeld kopieren. Klicken Sie dann auf "OK".
So retten Sie sich schnell vor einer Datenkatastrophe
Die Datenkatastrophe, über die wir in Word sprechen, kann immer dann auftreten, wenn sie nicht mehr ordnungsgemäß funktioniert. Manchmal hat man Glück und alle Informationen sind intakt. Und manchmal fallen Sie der Katastrophe zum Opfer. Daher ist der schnellste Weg, um so viele Daten wie möglich abzurufen, ein Tool zu erhalten docx reparieren.
Einführung des Autors:
Vera Chen ist eine Datenrettungsexpertin in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich xlsx reparieren und pdf Reparatur von Softwareprodukten. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX



