Στο σημερινό άρθρο, θα θέλαμε να μοιραστούμε μαζί σας τα βήματα για τη μαζική εξαγωγή όλων των σελιδοδεικτών από το έγγραφο του Word σας, ώστε να μπορείτε να τα δείτε ταυτόχρονα.
Στο Word, μπορείτε να δημιουργήσετε έναν πίνακα περιεχομένων ή έναν πίνακα αριθμών με την ενσωματωμένη συνάρτηση. Όμως, τελικά θα βρείτε ότι δεν υπάρχει συνηθισμένος τρόπος για να εξαγάγετε όλους τους σελιδοδείκτες ενός εγγράφου και να τους τακτοποιήσετε σε ένα νέο έγγραφο.
Όπως πάντα, η αποστολή μας είναι να σας καθοδηγήσουμε στον μύθο και να σας παρέχουμε τον μακροοικονομικό τρόπο εξαγωγής όλων των σελιδοδεικτών καθώς και των κειμένων τους σε ένα νέο κενό έγγραφο.
Μαζική εξαγωγή όλων των σελιδοδεικτών από ένα ενιαίο έγγραφο
- Για να ξεκινήσετε, ανοίξτε το έγγραφο προορισμού και πατήστε "Alt+F11" για να καλέσετε τον επεξεργαστή VBA.
- Στη συνέχεια κάντε κλικ στο "Normal" και μετά στο "Insert".
- Και επιλέξτε "Module" για να δημιουργήσετε ένα νέο στο έργο "Normal".
- Στη συνέχεια, κάντε διπλό κλικ σε αυτό για να αναδείξετε τον χώρο επεξεργασίας.
- Επικολλήστε την ακόλουθη μακροεντολή εκεί:
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
- Τελευταίο αλλά όχι το λιγότερο, κάντε κλικ στο "Εκτέλεση".
Όλοι οι σελιδοδείκτες του τρέχοντος εγγράφου θα τοποθετηθούν σε έναν πίνακα σε ένα νέο έγγραφο που θα αποθηκευτεί κάτω από τον ίδιο κατάλογο με το αρχικό αρχείο.
Μπορείτε να δείτε πίνακα 3 στηλών στο νέο έγγραφο. Και αν ακολουθήσετε το "Ctrl + Click", θα σας μεταφέρει στο σελιδοδείκτη στο αρχικό έγγραφο.
Μαζική εξαγωγή σελιδοδεικτών από πολλά έγγραφα
Ακολουθήστε τα ίδια βήματα παραπάνω για να εγκαταστήσετε και να εκτελέσετε μια μακροεντολή. Μόνο αυτή τη φορά, αντικαθιστάτε τους κωδικούς με τους παρακάτω:
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
Μόλις εκτελέσετε τη μακροεντολή, υπάρχει ένα πλαίσιο εισαγωγής. Εισαγάγετε τη διαδρομή φακέλου όπου αποθηκεύετε όλα τα έγγραφα. Και θυμηθείτε να προσθέστε "\" στο τέλος της διαδρομής αν το αντιγράψετε απλώς από το πλαίσιο κειμένου του φακέλου. Στη συνέχεια κάντε κλικ στο "OK".
Πώς να σώσετε γρήγορα τον εαυτό σας από την καταστροφή δεδομένων
Η καταστροφή δεδομένων για την οποία μιλάμε στο Word μπορεί να συμβεί όποτε σταματήσει να λειτουργεί ασυνήθιστα. Μερικές φορές, είστε τυχεροί και έχετε όλες τις πληροφορίες άθικτες. Και άλλες φορές, πέφτετε θύμα της καταστροφής. Επομένως, ο γρηγορότερος τρόπος για να ανακτήσετε όσο το δυνατόν περισσότερα δεδομένα είναι να αποκτήσετε ένα εργαλείο επιδιορθώστε το docx.
Εισαγωγή συγγραφέα:
Η Vera Chen είναι ειδικός ανάκτησης δεδομένων στο DataNumen, Inc., η οποία είναι ο παγκόσμιος ηγέτης στις τεχνολογίες ανάκτησης δεδομένων, συμπεριλαμβανομένων επισκευή xlsx και pdf επισκευή προϊόντων λογισμικού. Για περισσότερες πληροφορίες επισκεφθείτε www.datanumen.com



