Trong bài viết hôm nay, chúng tôi xin chia sẻ với các bạn các bước để trích xuất hàng loạt tất cả các dấu trang từ tài liệu Word của bạn để xem chúng cùng một lúc.
Trong Word, bạn có thể tạo mục lục hoặc bảng số liệu bằng chức năng tích hợp sẵn. Tuy nhiên, cuối cùng bạn sẽ thấy rằng không có cách thông thường nào để trích xuất tất cả các dấu trang của một tài liệu và sắp xếp chúng trên một tài liệu mới.
Như mọi khi, nhiệm vụ của chúng tôi là dẫn dắt bạn đi qua huyền thoại và cung cấp cho bạn cách vĩ mô để xuất tất cả các dấu trang cũng như văn bản của chúng sang một tài liệu trống mới.
Trích xuất hàng loạt tất cả dấu trang từ một tài liệu
- Trước tiên, hãy mở tài liệu mục tiêu và nhấn tổ hợp phím “Alt + F11” để mở trình soạn thảo VBA.
- Tiếp theo nhấp vào “Bình thường” và sau đó “Chèn”.
- Và chọn “Module” để tạo một cái mới trong dự án “Normal”.
- Sau đó nhấp đúp chuột vào nó để đưa ra không gian chỉnh sửa.
- Dán macro sau vào đó:
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
- Cuối cùng nhưng không kém phần quan trọng, hãy nhấp vào “Chạy”.
Tất cả các dấu trang của tài liệu hiện tại sẽ được đặt trong một bảng trên một tài liệu mới được lưu trong cùng thư mục với tệp gốc.
Bạn có thể xem bảng 3 cột trong tài liệu mới. Và nếu bạn làm theo “Ctrl+ Click”, nó sẽ đưa bạn đến dấu trang trong tài liệu gốc.
Trích xuất hàng loạt dấu trang từ nhiều tài liệu
Thực hiện theo các bước tương tự ở trên để cài đặt và chạy macro. Chỉ lần này, bạn thay thế các mã bằng các mã dưới đây:
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
Khi bạn chạy macro, sẽ có một hộp nhập liệu. Nhập đường dẫn thư mục nơi bạn lưu trữ tất cả các tài liệu. Và hãy nhớ thêm “\” vào cuối đường dẫn nếu bạn chỉ sao chép nó từ hộp văn bản thư mục. Sau đó nhấp vào “OK”.
Cách nhanh chóng giải cứu bản thân khỏi thảm họa dữ liệu
Thảm họa dữ liệu mà chúng ta nói đến trong Word có thể xảy ra bất cứ khi nào nó ngừng hoạt động một cách bất thường. Đôi khi, bạn gặp may mắn và có tất cả thông tin nguyên vẹn. Và những lần khác, bạn trở thành nạn nhân của thảm họa. Do đó, cách nhanh nhất để truy xuất càng nhiều dữ liệu càng tốt là có được một công cụ để sửa docx.
Giới thiệu tác giả:
Vera Chen là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm sửa chữa xlsx và pdf sửa chữa các sản phẩm phần mềm. Để biết thêm thông tin, hãy truy cập www.datanumennăm



