W dzisiejszym artykule chcielibyśmy podzielić się z Tobą krokami, aby zbiorczo wyodrębnić wszystkie zakładki z dokumentu Word, aby wyświetlić je jednocześnie.
W programie Word możesz wygenerować spis treści lub spis rysunków za pomocą wbudowanej funkcji. Ale ostatecznie przekonasz się, że nie ma zwykłego sposobu na wyodrębnienie wszystkich zakładek z dokumentu i ułożenie ich w nowym dokumencie.
Jak zawsze, naszą misją jest poprowadzenie Cię przez mit i dostarczenie makro sposobu na wyeksportowanie wszystkich zakładek wraz z ich tekstem do nowego, pustego dokumentu.
Wyodrębnij wsadowo wszystkie zakładki z jednego dokumentu
- Aby rozpocząć, otwórz dokument docelowy i naciśnij „Alt+F11”, aby wywołać edytor VBA.
- Następnie kliknij „Normalne”, a następnie „Wstaw”.
- I wybierz „Moduł”, aby utworzyć nowy w ramach projektu „Normalny”.
- Następnie kliknij go dwukrotnie, aby wydobyć przestrzeń edycyjną.
- Wklej tam następujące makro:
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
- Na koniec kliknij „Uruchom”.
Wszystkie zakładki bieżącego dokumentu zostaną umieszczone w tabeli w nowym dokumencie zapisanym w tym samym katalogu co oryginalny plik.
Możesz zobaczyć tabelę z 3 kolumnami w nowym dokumencie. A jeśli zastosujesz „Ctrl + kliknięcie”, przeniesie Cię to do zakładki w oryginalnym dokumencie.
Wyodrębnij wsadowo zakładki z wielu dokumentów
Wykonaj te same czynności powyżej, aby zainstalować i uruchomić makro. Tylko tym razem zamieniasz kody na poniższe:
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
Po uruchomieniu makra pojawia się pole wprowadzania. Wprowadź ścieżkę folderu, w którym przechowujesz wszystkie dokumenty. I pamiętaj dodaj „\” na końcu ścieżki jeśli po prostu skopiujesz go z pola tekstowego folderu. Następnie kliknij „OK”.
Jak szybko uratować się przed katastrofą danych
Katastrofa danych, o której mówimy w programie Word, może się zdarzyć, gdy przestanie działać nienormalnie. Czasami masz szczęście i wszystkie informacje są nienaruszone. A innym razem padasz ofiarą katastrofy. Dlatego najszybszym sposobem na odzyskanie jak największej ilości danych jest zdobycie narzędzia do napraw dokument.
Wprowadzenie autora:
Vera Chen jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym napraw xlsx i pdf oprogramowanie do naprawy. po więcej informacji odwiedź www.datanumen.com



