Hogyan lehet kötegesen kivonni az összes könyvjelzőt a Word-dokumentumból

Oszd meg most:

A mai cikkben szeretnénk megosztani Önnel a Word-dokumentumból az összes könyvjelző kötegelt kivonatának lépéseit, hogy azokat egyszerre megtekinthesse.

A Wordben a beépített funkcióval tartalomjegyzéket vagy ábratáblázatot hozhat létre. De végül azt fogja tapasztalni, hogy nincs szokásos mód a dokumentum összes könyvjelzőjének kibontására és új dokumentumba rendezésére.Hogyan lehet kötegesen kivonni az összes könyvjelzőt a Word-dokumentumból

Mint mindig, most is az a küldetésünk, hogy átvezetjük Önt a mítoszon, és makró módot biztosítunk az összes könyvjelző és azok szövegének egy új üres dokumentumba való exportálásához.

Kötegelt kivonat minden könyvjelzőt egyetlen dokumentumból

  1. Kezdéshez nyissa meg a céldokumentumot, és nyomja meg az „Alt+F11” billentyűkombinációt a VBA szerkesztő meghívásához.
  2. Ezután kattintson a „Normál”, majd a „Beszúrás” gombra.
  3. És válassza a „Modul” lehetőséget egy új létrehozásához a „Normál” projekt alatt.Kattintson a "Normál" -> Kattintson a "Beszúrás" -> Kattintson a "Modul" gombra.
  4. Ezután kattintson duplán a szerkesztési terület megjelenítéséhez.
  5. Illessze be a következő makrót:
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. Végül, de nem utolsósorban kattintson a „Futtatás” gombra.Kódok beillesztése-> Kattintson a "Futtatás" gombra

Az aktuális dokumentum összes könyvjelzője egy táblázatba kerül egy új dokumentumon, amely ugyanabban a könyvtárban van elmentve, mint az eredeti fájl.

Az új dokumentumban 3 oszlopos táblázat látható. És ha követi a „Ctrl+ Click” billentyűt, akkor az eredeti dokumentum könyvjelzőjéhez jut.Az összes könyvjelzőt és azok szövegét és oldalszámait tartalmazó táblázat

Kötegelt kivonat könyvjelzők több dokumentumból

Kövesse a fenti lépéseket a makró telepítéséhez és futtatásához. Csak ezúttal cserélje ki a kódokat a következőre:

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

A makró futtatása után megjelenik egy beviteli mező. Adja meg a mappa elérési útját, ahol az összes dokumentumot tárolja. És ne feledje add hozzá a „\” jelet az elérési út végéhez ha csak a mappa szövegdobozából másolja ki. Ezután kattintson az „OK” gombra.Adja meg a mappa elérési útját -> kattintson az "OK" gombra

Hogyan lehet gyorsan megmenteni magát az adatkatasztrófából

Az adatkatasztrófa, amelyről a Wordben beszélünk, akkor fordulhat elő, amikor a program rendellenesen leáll. Néha szerencséje van, és minden információ érintetlen. Máskor pedig a katasztrófa áldozatává válsz. Ezért a lehető legtöbb adat lekérésének leggyorsabb módja egy eszköz beszerzése docx javítás.

Szerző Bevezetés:

Vera Chen adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve javítás xlsx és a pdf javító szoftvertermékek. További információért látogasson el www.datanumen.com

Oszd meg most:

Hozzászólások lezárva.