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.
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
- Untuk bermula, buka dokumen sasaran dan tekan "Alt + F11" untuk memanggil editor VBA.
- Seterusnya klik "Normal" dan kemudian "Masukkan".
- Dan pilih "Module" untuk membuat yang baru di bawah projek "Normal".
- Kemudian klik dua kali padanya untuk mengeluarkan ruang penyuntingan.
- 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
- Akhir sekali, 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.
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".
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



