Batch alle bladwijzers uit uw Word-document extraheren

In het artikel van vandaag willen we de stappen met u delen om alle bladwijzers batchgewijs uit uw Word-document te halen om ze in één keer te bekijken.

In Word kunt u een inhoudsopgave of een tabel met afbeeldingen genereren met de ingebouwde functie. Maar uiteindelijk zult u ontdekken dat er geen gebruikelijke manier is om alle bladwijzers van een document te extraheren en ze op een nieuw document te ordenen.Batch alle bladwijzers uit uw Word-document extraheren

Zoals altijd is het onze missie om u door de mythe te leiden en u de macromanier te bieden om alle bladwijzers en hun teksten naar een nieuw leeg document te exporteren.

Batch alle bladwijzers uit één document extraheren

  1. Open om te beginnen het betreffende document en druk op "Alt+F11" om de VBA-editor te openen.
  2. Klik vervolgens op "Normaal" en vervolgens op "Invoegen".
  3. En kies "Module" om een ​​nieuwe aan te maken onder "Normaal" project.Klik op "Normaal" -> Klik op "Invoegen" -> Klik op "Module"
  4. Dubbelklik er vervolgens op om de bewerkingsruimte te openen.
  5. Plak daar de volgende macro:
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. Als laatste, maar niet de minste, klik op "Uitvoeren".Plak codes-> Klik op "Uitvoeren"

Alle bladwijzers van het huidige document worden in een tabel in een nieuw document opgeslagen in dezelfde map als het originele bestand.

U kunt een tabel met 3 kolommen in het nieuwe document zien. En als je de "Ctrl + klik" volgt, zal het je naar de bladwijzer in het originele document brengen.Een tabel met alle bladwijzers en hun teksten en paginanummers

Batch-extract bladwijzers uit meerdere documenten

Volg dezelfde stappen hierboven om een ​​macro te installeren en uit te voeren. Alleen deze keer vervang je de codes door de blaffende:

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

Nadat u de macro heeft uitgevoerd, is er een invoerveld. Voer het mappad in waar u alle documenten opslaat. En vergeet niet voeg "\" toe aan het einde van het pad als u het gewoon vanuit het tekstvak van de map kopieert. Klik vervolgens op "OK".Voer het mappad in -> klik op "OK"

Hoe u zich snel kunt redden van een gegevensramp

De gegevensramp waar we het in Word over hebben, kan optreden wanneer deze niet meer normaal werkt. Soms heb je geluk en heb je alle informatie intact. En soms word je het slachtoffer van de ramp. Daarom is de snelste manier om zoveel mogelijk gegevens op te halen, het verkrijgen van een tool voor repareer docx.

Auteur Introductie:

Vera Chen is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie xlsx en pdf reparatie softwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.