I dagens artikkel vil vi gjerne dele trinnene med deg for å pakke ut alle bokmerker fra Word-dokumentet ditt for å vise dem på en gang.
I Word kan du generere en innholdsfortegnelse eller en figurtabell med den innebygde funksjonen. Men du vil til slutt finne at det ikke er noen vanlig måte å trekke ut alle bokmerkene til et dokument og ordne dem på et nytt dokument.
Som alltid er vårt oppdrag å lede deg gjennom myten og gi deg makrometoden for å eksportere alle bokmerker så vel som tekstene deres til et nytt tomt dokument.
Batchtrekk ut alle bokmerker fra et enkelt dokument
- Til start av, åpne tarhent dokumentet og trykk "Alt+ F11" for å starte VBA-editoren.
- Klikk deretter "Normal" og deretter "Sett inn".
- Og velg "Modul" for å lage en ny under "Normal"-prosjektet.
- Dobbeltklikk deretter på den for å få frem redigeringsplassen.
- Lim inn følgende makro der:
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
- Sist men ikke minst, klikk "Kjør".
Alle bokmerkene til det gjeldende dokumentet vil bli plassert i en tabell over et nytt dokument som er lagret i samme katalog som den opprinnelige filen.
Du kan se en tabell med 3 kolonner i det nye dokumentet. Og hvis du følger "Ctrl + Klikk", vil det bringe deg til bokmerket i originaldokumentet.
Batchtrekk ut bokmerker fra flere dokumenter
Følg de samme trinnene ovenfor for å installere og kjøre en makro. Bare denne gangen erstatter du kodene med de under:
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
Når du kjører makroen, er det en inndataboks. Skriv inn mappebanen der du lagrer alle dokumentene. Og husk å legg til "\" på slutten av banen hvis du bare kopierer det fra mappetekstboksen. Klikk deretter "OK".
Hvordan du raskt kan redde deg selv fra datakatastrofe
Datakatastrofen vi snakker om i Word kan skje når den slutter å fungere unormalt. Noen ganger er du heldig og har all informasjon intakt. Og andre ganger blir du offer for katastrofen. Derfor er den raskeste måten å hente så mye data som mulig på å skaffe et verktøy for å fikse docx.
Forfatterintroduksjon:
Vera Chen er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparer xlsx og pdf reparere programvareprodukter. For mer informasjon besøk www.datanumen. Med



