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.
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
- A start off, abre el tarobtenga el documento y presione "Alt + F11" para invocar el editor de VBA.
- Luego haga clic en “Normal” y luego en “Insertar”.
- Y elija "Módulo" para crear uno nuevo en el proyecto "Normal".
- Luego haga doble clic en él para que aparezca el espacio de edición.
- 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
- Por último, pero no menos importante, 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.
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".
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



