În articolul de astăzi, am dori să vă împărtășim pașii pentru extragerea în lot a tuturor marcajelor din documentul Word pentru a le vizualiza simultan.
În Word, puteți genera un cuprins sau un tabel cu cifre cu funcția încorporată. Dar, în cele din urmă, veți descoperi că nu există o modalitate obișnuită de a extrage toate marcajele unui document și de a le aranja pe un document nou.
Ca întotdeauna, misiunea noastră este să vă conducem prin mit și să vă oferim o modalitate macro de a exporta toate marcajele, precum și textele acestora într-un nou document gol.
Extrageți în lot toate marcajele dintr-un singur document
- Pentru început, deschideți documentul țintă și apăsați „Alt+ F11” pentru a apela editorul VBA.
- Apoi faceți clic pe „Normal” și apoi pe „Inserare”.
- Și alegeți „Modul” pentru a crea unul nou în proiectul „Normal”.
- Apoi faceți dublu clic pe el pentru a scoate în evidență spațiul de editare.
- Lipiți următoarea macrocomandă acolo:
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
- Nu în ultimul rând, faceți clic pe „Run”.
Toate marcajele documentului curent vor fi puse într-un tabel pe un document nou salvat în același director ca și fișierul original.
Puteți vedea tabelul cu 3 coloane în noul document. Și dacă urmați „Ctrl+ Click”, acesta vă va aduce la marcajul din documentul original.
Extrage în lot marcaje din mai multe documente
Urmați aceiași pași de mai sus pentru a instala și rula o macrocomandă. Numai de această dată, înlocuiți codurile cu cele de mai jos:
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
Odată ce rulați macro-ul, există o casetă de introducere. Introduceți calea folderului în care stocați toate documentele. Și amintiți-vă adăugați „\” la sfârșitul căii doar dacă îl copiați din caseta de text folder. Apoi faceți clic pe „OK”.
Cum să te salvezi rapid de la dezastrul de date
Dezastrul de date despre care vorbim în Word se poate întâmpla ori de câte ori încetează să funcționeze anormal. Uneori, ai noroc și ai toate informațiile intacte. Și alteori, ești victima dezastrului. Prin urmare, cea mai rapidă modalitate de a prelua cât mai multe date posibil este să obțineți un instrument pentru reparați docx.
Introducerea autorului:
Vera Chen este expertă în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv reparați xlsx și pdf repararea produselor software. Pentru mai multe informații vizitați www.datanumen.com



