Hoppa till huvudinnehåll

Hur skriver jag ut en lista över bokmärken i Word-dokument?

Har du någonsin försökt skriva ut en lista med bokmärken i ett Word-dokument? Här visar vi dig metoder för att uppnå det.

Extrahera alla bokmärken och skriv ut med VBA

Skriv ut alla bokmärken direkt med VBA


Extrahera alla bokmärken och skriv ut med VBA

Nedanstående VBA-kod hjälper till att lista alla bokmärken från det aktuella dokumentet till ett nytt, och du kan manuellt skriva ut de extraherade bokmärkena efter behov. Gör så här.

1. Öppna dokumentet som du kommer att skriva ut bokmärkena och tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, kopiera sedan nedanstående kod till modulfönstret.

VBA-kod: Extrahera alla bokmärken till ett nytt dokument

Sub ExtractBookmarksInADoc()
'Updated by Extendoffice 20181123
    Dim xRow As Long
    Dim xTable As Table
    Dim xDoc As Document
    Dim xBookMark As Bookmark
    Dim xBookMarkDoc As Document
    Dim xParagraph As Paragraph
    Set xDoc = ActiveDocument
    If xDoc.Bookmarks.Count = 0 Then
        MsgBox "There is no bookmark in this document", vbInformation, "KuTools for Word"
        Exit Sub
    End If
    Set xBookMarkDoc = Documents.Add
    xRow = 1
    Selection.TypeText "BookMarks in " & "'" & xDoc.Name & "'"
    Set xTable = Selection.Tables.Add(Selection.Range, 1, 3)
    xTable.Borders.Enable = True
    With xTable
        .Cell(xRow, 1).Range.Text = "Name"
        .Cell(xRow, 2).Range.Text = "Texts"
        .Cell(xRow, 3).Range.Text = "Page Number"
        For Each xBookMark In xDoc.Bookmarks
            xTable.Rows.Add
            xRow = xRow + 1
            .Cell(xRow, 1).Range.Text = xBookMark.Name
            .Cell(xRow, 2).Range.Text = xBookMark.Range.Text
            .Cell(xRow, 3).Range.Text = xBookMark.Range.Information(wdActiveEndAdjustedPageNumber)
            xDoc.Hyperlinks.Add Anchor:=.Cell(xRow, 3).Range, Address:=xDoc.Name, _
              SubAddress:=xBookMark.Name, TextToDisplay:=.Cell(xRow, 3).Range.Text
        Next
    End With
    xBookMarkDoc.SaveAs xDoc.Path & "\" & "Bookmarks in " & xDoc.Name
End Sub

3. tryck på F5 för att köra koden.

Sedan skapas ett nytt dokument automatiskt med alla bokmärken för specificerad dokumentlista inuti.

4. Du kan klicka Fil > Skriva ut för att skriva ut listan över extraherade bokmärken efter behov.


Skriv ut alla bokmärken direkt med VBA

Gör så här om du vill skriva ut alla bokmärken i det aktuella dokumentet.

1. Öppna dokumentet som du kommer att skriva ut bokmärkena och tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modul, kopiera sedan koden nedan till modulfönstret.

VBA-kod: Skriv ut alla bokmärken i ett dokument

Sub ExtractBookmarksInADoc()
'Updated by Extendoffice 20181123
    Dim xRow As Long
    Dim xTable As Table
    Dim xDoc As Document
    Dim xBookMark As Bookmark
    Dim xBookMarkDoc As Document
    Dim xParagraph As Paragraph
    On Error Resume Next
    Set xDoc = ActiveDocument
    If xDoc.Bookmarks.Count = 0 Then
        MsgBox "There is no bookmark in this document", vbInformation, "KuTools for Word"
        Exit Sub
    End If
    Set xBookMarkDoc = Documents.Add
    xRow = 1
    Selection.TypeText "BookMarks in " & "'" & xDoc.Name & "'"
    Set xTable = Selection.Tables.Add(Selection.Range, 1, 3)
    xTable.Borders.Enable = True
    With xTable
        .Cell(xRow, 1).Range.Text = "Name"
        .Cell(xRow, 2).Range.Text = "Texts"
        .Cell(xRow, 3).Range.Text = "Page Number"
        For Each xBookMark In xDoc.Bookmarks
            xTable.Rows.Add
            xRow = xRow + 1
            .Cell(xRow, 1).Range.Text = xBookMark.Name
            .Cell(xRow, 2).Range.Text = xBookMark.Range.Text
            .Cell(xRow, 3).Range.Text = xBookMark.Range.Information(wdActiveEndAdjustedPageNumber)
            xDoc.Hyperlinks.Add Anchor:=.Cell(xRow, 3).Range, Address:=xDoc.Name, _
              SubAddress:=xBookMark.Name, TextToDisplay:=.Cell(xRow, 3).Range.Text
        Next
    End With
    xBookMarkDoc.SaveAs xDoc.Path & "\" & "Bookmarks in " & xDoc.Name
    xBookMarkDoc.PrintOut
    xBookMarkDoc.Close
    Kill xBookMarkDoc.Path
End Sub

3. tryck på F5 för att skriva ut bokmärkena direkt.

Bästa kontorsproduktivitetsverktyg

Kutools för Word - Höj din ordupplevelse med Over 100 Anmärkningsvärda funktioner!

🤖 Kutools AI Assistant: Förvandla ditt skrivande med AI - Generera innehåll  /  Skriv om text  /  Sammanfatta dokument  /  Fråga för information baserat på dokument, allt i Word

📘 Dokumentbehärskning: Dela sidor  /  Sammanfoga dokument  /  Exportera urval i olika format (PDF/TXT/DOC/HTML...)  /  Batchkonvertera till PDF  /  Exportera sidor som bilder  /  Skriv ut flera filer samtidigt...

Innehållsredigering: Batch Hitta och ersätt över flera filer  /  Ändra storlek på alla bilder  /  Transponera tabellrader och kolumner  /  Konvertera tabell till text...

🧹 Enkel rengöring: Svep bort Extra utrymmen  /  Avsnitt bryter  /  Alla rubriker  /  Textrutor  /  Hyperlänkar  / För fler borttagningsverktyg, gå till vår Ta bort gruppen...

Kreativa inlägg: Föra in Tusen avskiljare  /  Kryssrutor  /  radio Knappar  /  QR-kod  /  Streckkod  /  Diagonal linjebord  /  Bildtext för ekvation  /  Bild Bildtext  /  Tabelltextning  /  Flera bilder  / Upptäck mer i Infoga grupp...

🔍 Precisionsval: Precisera specifika sidor  /  Tabellerna  /  former  /  rubrikerna  / Förbättra navigering med mer Välj funktioner...

Stjärnförbättringar: Navigera snabbt till vilken plats som helst  /  infoga repetitiv text automatiskt  /  växla sömlöst mellan dokumentfönster  /  11 Konverteringsverktyg...

👉 Vill du prova dessa funktioner? Kutools för Word erbjuder en 60-dagars gratis försök, utan begränsningar! 🚀
 
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations