Как да извлечете пакетно всички отметки от вашия Word документ

Споделете сега:

В днешната статия бихме искали да споделим с вас стъпките за групово извличане на всички отметки от вашия документ на Word, за да ги видите наведнъж.

В Word можете да генерирате съдържание или таблица с фигури с вградената функция. Но в крайна сметка ще откриете, че няма обичаен начин да извлечете всички отметки на документ и да ги подредите в нов документ.Как да извлечете пакетно всички отметки от вашия Word документ

Както винаги, нашата мисия е да ви преведем през мита и да ви предоставим макро начина за експортиране на всички отметки, както и техните текстове в нов празен документ.

Групово извличане на всички отметки от един документ

  1. За да започнете, отворете целевия документ и натиснете „Alt+F11“, за да извикате VBA редактора.
  2. След това щракнете върху „Normal“ и след това „Insert“.
  3. И изберете „Модул“, за да създадете нов под „Нормален“ проект.Щракнете върху "Нормално" -> Щракнете върху "Вмъкване" -> Щракнете върху "Модул"
  4. След това щракнете два пъти върху него, за да изведете пространството за редактиране.
  5. Поставете следния макрос там:
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
  1. Не на последно място, щракнете върху „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“.Въведете пътя на папката-> Щракнете върху „OK“

Как бързо да се спасите от катастрофа с данни

Бедствието с данните, за което говорим в Word, може да се случи всеки път, когато спре да работи необичайно. Понякога имате късмет и цялата информация е непокътната. А друг път ставаш жертва на бедствието. Следователно най-бързият начин да извлечете възможно най-много данни е да получите инструмент за поправяне на docx.

Въведение на автора:

Вера Чен е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително ремонт xlsx и pdf ремонт на софтуерни продукти. За повече информация посетете WWW.datanumen.com

Споделете сега:

Коментарите са забранени.