Qanday qilib Word hujjatingizdan barcha xatcho'plarni to'plamdan chiqarish mumkin

Hozir ulashing:

Bugungi maqolada biz siz bilan Word hujjatingizdagi barcha xatcho'plarni bir vaqtning o'zida ko'rish uchun ularni to'plash bosqichlarini baham ko'rmoqchimiz.

Word-da siz o'rnatilgan funksiyaga ega bo'lgan tarkib yoki raqamlar jadvalini yaratishingiz mumkin. Ammo, oxir-oqibat, hujjatning barcha xatcho'plarini ajratib olish va ularni yangi hujjatda tartibga solishning odatiy usuli yo'qligini topasiz.Qanday qilib Word hujjatingizdan barcha xatcho'plarni to'plamdan chiqarish mumkin

Har doimgidek, bizning vazifamiz sizni afsona orqali olib borish va barcha xatcho'plar va ularning matnlarini yangi bo'sh hujjatga eksport qilishning so'l usulini taqdim etishdir.

Barcha xatcho'plarni bitta hujjatdan to'plamdan chiqarib oling

  1. Boshlash uchun maqsadli hujjatni oching va VBA muharririni ishga tushirish uchun "Alt + F11" tugmalarini bosing.
  2. Keyin "Oddiy" va keyin "Qo'shish" tugmasini bosing.
  3. Va "Oddiy" loyihasi ostida yangisini yaratish uchun "Modul" ni tanlang."Oddiy"-ni bosing->"Qo'shish"-ni bosing->"Modul"-ni bosing.
  4. Keyin tahrirlash maydonini ochish uchun ustiga ikki marta bosing.
  5. U erga quyidagi makroni joylashtiring:
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. Va nihoyat, "Ishga tushirish" tugmasini bosing.Kodlarni joylashtirish -> "Ishga tushirish" tugmasini bosing

Joriy hujjatning barcha xatcho'plari asl fayl bilan bir xil katalog ostida saqlangan yangi hujjatdagi jadvalga joylashtiriladi.

Yangi hujjatda 3 ta ustunli jadvalni ko'rishingiz mumkin. Va agar siz "Ctrl + Click" tugmachalariga amal qilsangiz, u sizni asl hujjatdagi xatcho'pga olib boradi.Barcha xatcho'plar va ularning matnlari va sahifa raqamlari jadvali

Bir nechta hujjatlardan xatcho'plarni to'plash

Makrosni o'rnatish va ishga tushirish uchun yuqoridagi amallarni bajaring. Faqat bu safar siz kodlarni quyidagi kodlar bilan almashtirasiz:

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

Makrosni ishga tushirganingizdan so'ng, kiritish oynasi mavjud. Barcha hujjatlar saqlanadigan papka yo'lini kiriting. Va unutmang yo'lning oxiriga "\" qo'shing agar siz uni faqat papka matn maydonidan nusxa ko'chirsangiz. Keyin "OK" tugmasini bosing.Papka yo'lini kiriting-> "OK" tugmasini bosing

Qanday qilib o'zingizni ma'lumotlar falokatidan tezda qutqarishingiz mumkin

Word-da biz gapiradigan ma'lumotlar halokati har doim anormal ishlashni to'xtatganda sodir bo'lishi mumkin. Ba'zan sizga omad kulib boqadi va barcha ma'lumotlar saqlanib qoladi. Boshqa paytlarda esa siz falokat qurboniga aylanasiz. Shuning uchun, iloji boricha ko'proq ma'lumot olishning eng tezkor usuli bu vositani olishdir docx ni tuzatish.

Muallif kirish:

Vera Chen - ma'lumotlarni qayta tiklash bo'yicha mutaxassis DataNumenMa'lumotlarni qayta tiklash texnologiyalari bo'yicha jahon yetakchisi bo'lgan , Inc xlsx ta'mirlash va pdf dasturiy mahsulotlarni ta'mirlash. Qo'shimcha ma'lumot olish uchun tashrif buyuring www.datanumen.com

Hozir ulashing:

Comments are closed.