Ako je možné z dokumentu programu Word extrahovať všetky záložky

Zdieľať teraz:

V dnešnom článku by sme sa s vami chceli podeliť o kroky na hromadné extrahovanie všetkých záložiek z dokumentu Word, aby ste ich mohli zobraziť naraz.

V programe Word môžete pomocou vstavanej funkcie vygenerovať obsah alebo tabuľku obrázkov. Nakoniec však zistíte, že neexistuje obvyklý spôsob, ako extrahovať všetky záložky dokumentu a usporiadať ich do nového dokumentu.Ako je možné z dokumentu programu Word extrahovať všetky záložky

Naším poslaním je ako vždy previesť vás mýtom a poskytnúť vám makro spôsob, ako exportovať všetky záložky a ich texty do nového prázdneho dokumentu.

Hromadne extrahujte všetky záložky z jedného dokumentu

  1. Ak chcete začať, otvorte cieľový dokument a stlačte klávesy „Alt + F11“, čím spustíte editor VBA.
  2. Ďalej kliknite na „Normálny“ a potom na „Vložiť“.
  3. A zvoľte „Modul“, aby ste vytvorili nový v rámci projektu „Normálny“.Kliknite na „Normálny“ -> Kliknite na „Vložiť“ -> Kliknite na „Modul“
  4. Potom na ňu dvakrát kliknite, aby sa uvoľnil priestor na úpravy.
  5. Vložte tam nasledujúce makro:
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 neposlednom rade kliknite na „Spustiť“.Prilepiť kódy-> kliknite na tlačidlo Spustiť

Všetky záložky aktuálneho dokumentu sa vložia do tabuľky na nový dokument uložený v rovnakom adresári ako pôvodný súbor.

V novom dokumente môžete vidieť tabuľku s 3 stĺpcami. A ak budete postupovať podľa pokynov „Ctrl + kliknutie“, dostanete sa na záložku v pôvodnom dokumente.Tabuľka všetkých záložiek a ich textov a čísel strán

Dávkové extrahovanie záložiek z viacerých dokumentov

Rovnakým spôsobom postupujte pri inštalácii a spustení makra. Iba tentoraz vymeníte kódy za nasledujúce:

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

Po spustení makra sa nachádza vstupné pole. Zadajte cestu k priečinku, do ktorého chcete uložiť všetky dokumenty. A nezabudnite na koniec cesty pridajte „\“ ak ho iba skopírujete z textového poľa priečinka. Potom kliknite na „OK“.Zadajte cestu k priečinku-> kliknite na tlačidlo „OK“

Ako sa rýchlo zachrániť pred katastrofou údajov

K katastrofe údajov, o ktorej hovoríme v programe Word, môže dôjsť vždy, keď prestane nenormálne fungovať. Niekedy máte šťastie a všetky informácie sú neporušené. A inokedy sa stanete obeťou katastrofy. Najrýchlejším spôsobom, ako získať čo najviac údajov, je preto získanie nástroja na opraviť docx.

Úvod autora:

Vera Chen je expertka na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť xlsx a pdf oprava softvérových produktov. Pre viac informácií navštívte www.datanumen. S

Zdieľať teraz:

Komentáre sú uzavreté.