В днешната статия бихме искали да споделим с вас стъпките за групово извличане на всички отметки от вашия документ на Word, за да ги видите наведнъж.
В Word можете да генерирате съдържание или таблица с фигури с вградената функция. Но в крайна сметка ще откриете, че няма обичаен начин да извлечете всички отметки на документ и да ги подредите в нов документ.
Както винаги, нашата мисия е да ви преведем през мита и да ви предоставим макро начина за експортиране на всички отметки, както и техните текстове в нов празен документ.
Групово извличане на всички отметки от един документ
- За да започнете, отворете целевия документ и натиснете „Alt+F11“, за да извикате VBA редактора.
- След това щракнете върху „Normal“ и след това „Insert“.
- И изберете „Модул“, за да създадете нов под „Нормален“ проект.
- След това щракнете два пъти върху него, за да изведете пространството за редактиране.
- Поставете следния макрос там:
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
- Не на последно място, щракнете върху „Run“.
Всички отметки на текущия документ ще бъдат поставени в таблица на нов документ, записан в същата директория като оригиналния файл.
Можете да видите таблица от 3 колони в новия документ. И ако следвате „Ctrl+Щракване“, това ще ви отведе до отметката в оригиналния документ.
Пакетно извличане на отметки от множество документи
Следвайте същите стъпки по-горе, за да инсталирате и стартирате макрос. Само този път заменяте кодовете със следните:
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.
Въведение на автора:
Вера Чен е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително ремонт xlsx и pdf ремонт на софтуерни продукти. За повече информация посетете WWW.datanumen.com



