Cómo extraer por lotes todos los marcadores de su documento de Word

Comparte ahora:

En el artículo de hoy, nos gustaría compartir con usted los pasos para extraer por lotes todos los marcadores de su documento de Word para verlos a la vez.

En Word, puede generar una tabla de contenido o una tabla de figuras con la función incorporada. Pero, en última instancia, encontrará que no existe una forma habitual de extraer todos los marcadores de un documento y organizarlos en un documento nuevo.Cómo extraer por lotes todos los marcadores de su documento de Word

Como siempre, nuestra misión es guiarlo a través del mito y brindarle la forma macro de exportar todos los marcadores, así como sus textos, a un nuevo documento en blanco.

Extraer por lotes todos los marcadores de un solo documento

  1. A start off, abre el tarobtenga el documento y presione "Alt + F11" para invocar el editor de VBA.
  2. Luego haga clic en “Normal” y luego en “Insertar”.
  3. Y elija "Módulo" para crear uno nuevo en el proyecto "Normal".Haga clic en "Normal" -> Haga clic en "Insertar" -> Haga clic en "Módulo"
  4. Luego haga doble clic en él para que aparezca el espacio de edición.
  5. Pegue la siguiente macro allí:
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. Por último, pero no menos importante, haga clic en "Ejecutar".Pegar códigos-> Haga clic en "Ejecutar"

Todos los marcadores del documento actual se colocarán en una tabla en un nuevo documento guardado en el mismo directorio que el archivo original.

Puede ver la tabla de 3 columnas en el nuevo documento. Y si sigue "Ctrl + Clic", lo llevará al marcador en el documento original.Una tabla de todos los marcadores y sus textos y números de página.

Extraer marcadores por lotes de varios documentos

Siga los mismos pasos anteriores para instalar y ejecutar una macro. Solo que esta vez, reemplaza los códigos con los siguientes:

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

Una vez que ejecuta la macro, hay un cuadro de entrada. Ingrese la ruta de la carpeta donde almacena todos los documentos. Y recuerda agregue "\" al final de la ruta si lo copia desde el cuadro de texto de la carpeta. Luego haga clic en "Aceptar".Ingrese la ruta de la carpeta-> Haga clic en "Aceptar"

Cómo rescatarse rápidamente de un desastre de datos

El desastre de datos del que hablamos en Word puede suceder siempre que deje de funcionar de forma anormal. A veces, tienes suerte y tienes toda la información intacta. Y otras veces, eres víctima del desastre. Por lo tanto, la forma más rápida de recuperar la mayor cantidad de datos posible es obtener una herramienta para arreglar docx.

Introducción del autor:

Vera Chen es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparar xlsx y pdf reparar productos de software. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.