A mai cikkben szeretnénk megosztani Önnel a Word-dokumentumból az összes könyvjelző kötegelt kivonatának lépéseit, hogy azokat egyszerre megtekinthesse.
A Wordben a beépített funkcióval tartalomjegyzéket vagy ábratáblázatot hozhat létre. De végül azt fogja tapasztalni, hogy nincs szokásos mód a dokumentum összes könyvjelzőjének kibontására és új dokumentumba rendezésére.
Mint mindig, most is az a küldetésünk, hogy átvezetjük Önt a mítoszon, és makró módot biztosítunk az összes könyvjelző és azok szövegének egy új üres dokumentumba való exportálásához.
Kötegelt kivonat minden könyvjelzőt egyetlen dokumentumból
- Kezdéshez nyissa meg a céldokumentumot, és nyomja meg az „Alt+F11” billentyűkombinációt a VBA szerkesztő meghívásához.
- Ezután kattintson a „Normál”, majd a „Beszúrás” gombra.
- És válassza a „Modul” lehetőséget egy új létrehozásához a „Normál” projekt alatt.
- Ezután kattintson duplán a szerkesztési terület megjelenítéséhez.
- Illessze be a következő makrót:
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
- Végül, de nem utolsósorban kattintson a „Futtatás” gombra.
Az aktuális dokumentum összes könyvjelzője egy táblázatba kerül egy új dokumentumon, amely ugyanabban a könyvtárban van elmentve, mint az eredeti fájl.
Az új dokumentumban 3 oszlopos táblázat látható. És ha követi a „Ctrl+ Click” billentyűt, akkor az eredeti dokumentum könyvjelzőjéhez jut.
Kötegelt kivonat könyvjelzők több dokumentumból
Kövesse a fenti lépéseket a makró telepítéséhez és futtatásához. Csak ezúttal cserélje ki a kódokat a következőre:
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
A makró futtatása után megjelenik egy beviteli mező. Adja meg a mappa elérési útját, ahol az összes dokumentumot tárolja. És ne feledje add hozzá a „\” jelet az elérési út végéhez ha csak a mappa szövegdobozából másolja ki. Ezután kattintson az „OK” gombra.
Hogyan lehet gyorsan megmenteni magát az adatkatasztrófából
Az adatkatasztrófa, amelyről a Wordben beszélünk, akkor fordulhat elő, amikor a program rendellenesen leáll. Néha szerencséje van, és minden információ érintetlen. Máskor pedig a katasztrófa áldozatává válsz. Ezért a lehető legtöbb adat lekérésének leggyorsabb módja egy eszköz beszerzése docx javítás.
Szerző Bevezetés:
Vera Chen adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve javítás xlsx és a pdf javító szoftvertermékek. További információért látogasson el www.datanumen.com



