Slik trekker du ut alle bokmerker fra Word-dokumentet ditt

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.Slik trekker du ut alle bokmerker fra Word-dokumentet ditt

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

  1. Til start av, åpne tarhent dokumentet og trykk "Alt+ F11" for å starte VBA-editoren.
  2. Klikk deretter "Normal" og deretter "Sett inn".
  3. Og velg "Modul" for å lage en ny under "Normal"-prosjektet.Klikk "Normal" -> Klikk "Sett inn" -> Klikk "Modul"
  4. Dobbeltklikk deretter på den for å få frem redigeringsplassen.
  5. 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
  1. Sist men ikke minst, klikk "Kjør".Lim inn koder-> 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.En tabell over alle bokmerker og deres tekster og sidetall

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".Skriv inn mappebane-> Klikk "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

Kommentarer er stengt.