วิธีการแบทช์แยกบุ๊กมาร์กทั้งหมดออกจากเอกสาร Word ของคุณ

แบ่งปันเลย:

ในบทความของวันนี้เราต้องการแบ่งปันขั้นตอนในการแยกบุ๊กมาร์กทั้งหมดจากเอกสาร Word ของคุณเพื่อดูพร้อมกัน

ใน Word คุณสามารถสร้างสารบัญหรือตารางตัวเลขด้วยฟังก์ชันในตัว แต่ในที่สุดคุณจะพบว่าไม่มีวิธีปกติในการแยกบุ๊กมาร์กทั้งหมดของเอกสารและจัดเรียงในเอกสารใหม่วิธีการแบทช์แยกบุ๊กมาร์กทั้งหมดออกจากเอกสาร Word ของคุณ

เช่นเคยภารกิจของเราคือนำคุณผ่านตำนานและจัดหาวิธีมาโครในการส่งออกบุ๊กมาร์กทั้งหมดรวมทั้งข้อความไปยังเอกสารเปล่าใหม่

Batch แยกบุ๊กมาร์กทั้งหมดออกจากเอกสารเดียว

  1. เริ่มต้นด้วยการเปิดเอกสารเป้าหมายแล้วกด “Alt+F11” เพื่อเรียกใช้ตัวแก้ไข VBA
  2. จากนั้นคลิก "ปกติ" แล้วคลิก "แทรก"
  3. และเลือก "โมดูล" เพื่อสร้างใหม่ภายใต้โครงการ "ปกติ"คลิก "Normal" -> คลิก "Insert" -> คลิก "Module"
  4. จากนั้นดับเบิลคลิกเพื่อดึงพื้นที่แก้ไขออกมา
  5. วางมาโครต่อไปนี้ที่นั่น:
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. สุดท้าย แต่ไม่ท้ายสุดให้คลิก“ เรียกใช้”วางรหัส -> คลิก "เรียกใช้"

บุ๊กมาร์กทั้งหมดของเอกสารปัจจุบันจะถูกใส่ไว้ในตารางบนเอกสารใหม่ที่บันทึกไว้ภายใต้ไดเร็กทอรีเดียวกับไฟล์ต้นฉบับ

คุณสามารถดูตาราง 3 คอลัมน์ในเอกสารใหม่ และหากคุณทำตาม“ Ctrl + Click” ระบบจะนำคุณไปยังบุ๊กมาร์กในเอกสารต้นฉบับตารางของบุ๊กมาร์กข้อความและหมายเลขหน้าทั้งหมด

Batch แยกบุ๊กมาร์กจากเอกสารหลายชุด

ทำตามขั้นตอนเดียวกันด้านบนเพื่อติดตั้งและเรียกใช้แมโคร คราวนี้คุณแทนที่รหัสด้วยรหัสที่ร้อง:

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

เมื่อคุณเรียกใช้แมโครจะมีช่องป้อนข้อมูล ป้อนเส้นทางโฟลเดอร์ที่คุณจัดเก็บเอกสารทั้งหมด และอย่าลืม เพิ่ม“ \” ที่ท้ายเส้นทาง หากคุณเพียงแค่คัดลอกจากกล่องข้อความของโฟลเดอร์ จากนั้นคลิก“ ตกลง”เข้าสู่เส้นทางโฟลเดอร์ -> คลิก "ตกลง"

วิธีการช่วยเหลือตัวเองอย่างรวดเร็วจากภัยพิบัติข้อมูล

ความหายนะของข้อมูลที่เราพูดถึงใน Word อาจเกิดขึ้นได้ทุกเมื่อที่หยุดทำงานอย่างผิดปกติ บางครั้งคุณโชคดีและมีข้อมูลครบถ้วน และในบางครั้งคุณตกเป็นเหยื่อของภัยพิบัติ ดังนั้นวิธีที่เร็วที่สุดในการดึงข้อมูลให้ได้มากที่สุดคือการขอรับเครื่องมือ แก้ไข docx.

บทนำผู้เขียน:

Vera Chen เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อม xlsx และ pdf ซ่อมแซมผลิตภัณฑ์ซอฟต์แวร์ ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด