Bagaimana Mengekstrak Semua Penanda Halaman dari Dokumen Word Anda

Kongsi Sekarang:

Dalam artikel hari ini, kami ingin berkongsi dengan anda langkah-langkah untuk mengekstrak secara bertahap semua penanda halaman dari dokumen Word anda untuk melihatnya sekaligus.

Di Word, anda boleh menghasilkan senarai isi atau daftar angka dengan fungsi terbina dalam. Tetapi, anda akhirnya akan mendapati bahawa tidak ada cara biasa untuk mengekstrak semua penanda halaman dokumen dan menyusunnya pada dokumen baru.Bagaimana Mengekstrak Semua Penanda Halaman dari Dokumen Word Anda

Seperti biasa, misi kami adalah memimpin anda melalui mitos dan memberi anda kaedah makro untuk mengeksport semua penanda buku serta teksnya ke dokumen kosong baru.

Batch Extract Semua Penanda Halaman dari Satu Dokumen

  1. Untuk bermula, buka dokumen sasaran dan tekan "Alt + F11" untuk memanggil editor VBA.
  2. Seterusnya klik "Normal" dan kemudian "Masukkan".
  3. Dan pilih "Module" untuk membuat yang baru di bawah projek "Normal".Klik "Normal" -> Klik "Insert" -> Klik "Module"
  4. Kemudian klik dua kali padanya untuk mengeluarkan ruang penyuntingan.
  5. Tampal makro berikut di sana:
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. Akhir sekali, klik "Jalankan".Tampal kod-> Klik "Jalankan"

Semua penanda buku dokumen semasa akan dimasukkan ke dalam tabel pada dokumen baru yang disimpan di bawah direktori yang sama dengan fail asalnya.

Anda dapat melihat jadual 3 lajur dalam dokumen baru. Dan jika anda mengikuti "Ctrl + Click", itu akan membawa anda ke penanda buku dalam dokumen asal.Jadual semua penanda halaman dan teks serta nombor halamannya

Batch Extract Bookmark dari Pelbagai Dokumen

Ikuti langkah yang sama di atas untuk memasang dan menjalankan makro. Hanya kali ini, anda mengganti kod dengan yang berikut:

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

Sebaik sahaja anda menjalankan makro, terdapat kotak input. Masukkan jalan folder di mana anda menyimpan semua dokumen. Dan ingat untuk tambah "\" di hujung jalan jika anda hanya menyalinnya dari kotak teks folder. Kemudian klik "OK".Masukkan laluan folder-> Klik "OK"

Cara Cepat Menyelamatkan Diri Anda dari Bencana Data

Bencana data yang kita bicarakan di Word boleh berlaku setiap kali ia berhenti berfungsi dengan tidak normal. Kadang kala, anda bernasib baik dan mempunyai semua maklumat yang utuh. Dan lain kali, anda menjadi mangsa bencana. Oleh itu, cara terpantas untuk mendapatkan sebanyak mungkin data adalah dengan mendapatkan alat untuk betulkan docx.

Pengenalan Pengarang:

Vera Chen adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk baiki xlsx dan pdf membaiki produk perisian. Untuk maklumat lebih lanjut, lawati www.datanumen.com

Kongsi Sekarang:

Ruangan komen telah ditutup.