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.
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
- Boshlash uchun maqsadli hujjatni oching va VBA muharririni ishga tushirish uchun "Alt + F11" tugmalarini bosing.
- Keyin "Oddiy" va keyin "Qo'shish" tugmasini bosing.
- Va "Oddiy" loyihasi ostida yangisini yaratish uchun "Modul" ni tanlang.
- Keyin tahrirlash maydonini ochish uchun ustiga ikki marta bosing.
- 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
- Va nihoyat, "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.
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.
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



