У сьогоднішній статті ми хотіли б поділитися з вами кроками для групового вилучення всіх закладок із вашого документа Word, щоб переглянути їх відразу.
У програмі Word ви можете створити зміст або таблицю рисунків за допомогою вбудованої функції. Але, зрештою, ви виявите, що немає звичайного способу витягти всі закладки документа та розташувати їх у новому документі.
Як завжди, наша місія - провести вас через міф та надати макрос для експорту всіх закладок, а також їх текстів до нового порожнього документа.
Пакетне вилучення всіх закладок з одного документа
- Для початку відкрийте цільовий документ і натисніть «Alt+F11», щоб викликати редактор VBA.
- Потім натисніть «Звичайний», а потім «Вставити».
- І виберіть «Модуль», щоб створити новий за проектом «Звичайний».
- Потім двічі клацніть на ньому, щоб відкрити простір для редагування.
- Вставте туди такий макрос:
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
Після запуску макросу з’являється поле введення. Введіть шлях до папки, де ви зберігаєте всі документи. І пам’ятайте про це додайте “\” в кінці шляху якщо просто скопіювати його з текстового поля папки. Потім натисніть «ОК».
Як швидко врятувати себе від лиха даних
Катастрофа даних, про яку ми говоримо у програмі Word, може трапитися, коли вона перестає працювати ненормально. Іноді вам щастить і вся інформація залишається цілою. А в інших випадках ти стаєш жертвою катастрофи. Тому найшвидший спосіб отримати якомога більше даних - це отримати інструмент для виправити docx.
Вступ автора:
Віра Чень є експертом з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі ремонт xlsx та pdf ремонт програмних продуктів. Для отримання додаткової інформації відвідайте WWW.datanumen.com



