Sa artikulong ngayon, nais naming ibahagi sa iyo ang mga hakbang sa pag-batch ng pag-extract ng lahat ng mga bookmark mula sa iyong dokumento ng Word upang tingnan ang mga ito nang sabay-sabay.
Sa Word, maaari kang bumuo ng isang talaan ng mga nilalaman o isang talaan ng mga numero na may built-in na function. Ngunit, sa huli ay makikita mong walang karaniwang paraan upang kunin ang lahat ng mga bookmark ng isang dokumento at ayusin ang mga ito sa isang bagong dokumento.
Gaya ng dati, ang aming misyon ay pangunahan ka sa mito at bigyan ka ng macro na paraan upang i-export ang lahat ng mga bookmark pati na rin ang kanilang mga teksto sa isang bagong blangkong dokumento.
Batch Extract Lahat ng Bookmark mula sa Isang Dokumento
- Para magsimula, buksan ang target na dokumento at pindutin ang "Alt+F11" para tawagin ang VBA editor.
- Susunod na pag-click sa "Normal" at pagkatapos ay "Ipasok".
- At piliin ang "Module" upang lumikha ng bago sa ilalim ng "Normal" na proyekto.
- Pagkatapos ay i-double click ito upang ilabas ang espasyo sa pag-edit.
- I-paste ang sumusunod na macro doon:
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
- Huling ngunit hindi pa huli, i-click ang "Patakbuhin".
Ang lahat ng mga bookmark ng kasalukuyang dokumento ay ilalagay sa isang talahanayan sa isang bagong dokumento na naka-save sa ilalim ng parehong direktoryo ng orihinal na file.
Maaari mong makita ang talahanayan ng 3 column sa bagong dokumento. At kung susundin mo ang "Ctrl+ Click", dadalhin ka nito sa bookmark sa orihinal na dokumento.
Batch Extract Bookmark mula sa Maramihang Dokumento
Sundin ang parehong mga hakbang sa itaas upang mag-install at magpatakbo ng macro. Tanging sa pagkakataong ito, papalitan mo ang mga code ng mga umuungol:
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
Sa sandaling patakbuhin mo ang macro, mayroong isang input box. Ipasok ang landas ng folder kung saan mo iniimbak ang lahat ng mga dokumento. At tandaan mo idagdag ang "\" sa dulo ng landas kung kopyahin mo lang ito mula sa folder na text box. Pagkatapos ay i-click ang "OK".
Paano Mabilis na Iligtas ang Iyong Sarili mula sa Data Disaster
Ang data disaster na pinag-uusapan natin sa Word ay maaaring mangyari sa tuwing hihinto ito sa hindi normal na paggana. Minsan, mapalad ka at buo ang lahat ng impormasyon. At sa ibang pagkakataon, nabibiktima ka ng sakuna. Samakatuwid, ang pinakamabilis na paraan upang makuha ang mas maraming data hangga't maaari ay ang pagkuha ng isang tool upang ayusin ang docx.
Panimula ng May-akda:
Si Vera Chen ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang ayusin ang xlsx at pdf pagkumpuni ng mga produktong software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa



