Cách trích xuất hàng loạt tất cả dấu trang từ tài liệu Word của bạn

Chia sẻ ngay bây giờ:

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.Cách trích xuất hàng loạt tất cả dấu trang từ tài liệu Word của bạn

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

  1. 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.
  2. Tiếp theo nhấp vào “Bình thường” và sau đó “Chèn”.
  3. Và chọn “Module” để tạo một cái mới trong dự án “Normal”.Nhấp vào "Bình thường" -> Nhấp vào "Chèn" -> Nhấp vào "Mô-đun"
  4. Sau đó nhấp đúp chuột vào nó để đưa ra không gian chỉnh sửa.
  5. 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
  1. Cuối cùng nhưng không kém phần quan trọng, hãy nhấp vào “Chạy”.Dán mã->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.Một bảng gồm tất cả các dấu trang và văn bản cũng như số trang của chúng

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”.Nhập đường dẫn thư mục->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

Chia sẻ ngay bây giờ:

Được đóng lại.