我在Makroa的其中一个站点中发现了一个宏,该宏将文档的所有引用都提取到页面末尾的表中,包括引用的名称,页码,行号,节号,我想成为相反,即通过该表我要添加书签通过此表和添加的信息,宏存在于文档中 此代码:
子ExtractBookmarksInSameDoc()
暗淡objBookmark作为书签
昏暗的objTable作为表格
Dim nRow作为整数
昏暗的objDoc作为d 文档,objNewDoc作为d 文档
Dim objParagraph作为段落
设置objDoc = Actived *文档
如果objDoc.Bookmarks.Count = 0则 MsgBox(“此d 文档中没有书签。” wink_3 其他 '设置objNewDoc = d 命令。添加
Selection.TypeText Text:="Bookmarks in " & "'" & objDoc.Name & "'"
Set objTable = Selection.Tables.Add(Range:=Selection.Range, numrows:=1, numcolumns:=5)
objTable.Borders.Enable = True
nRow = 1
For Each objParagraph In objDoc.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 = "Sections"
.Cell(1, 3).Range.Text = "Page Number"
.Cell(1, 4).Range.Text = "lines"
.Cell(1, 5).Range.Text = "Colm"
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.Information(wdActiveEndSectionNumber)
.Cell(nRow, 3).Range.Text = objBookmark.Range.Information(wdActiveEndAdjustedPageNumber)
.Cell(nRow, 4).Range.Text = objBookmark.Range.Information(wdFirstCharacterLineNumber) '
'(wdVerticalPositionRelativeToPage)
'(wdFirstCharacterLineNumber)
.Cell(nRow, 5).Range.Text = objBookmark.Range.Information(wdVerticalPositionRelativeToPage)
'(wdStartOfRangeColumnNumber)'(wdHorizontalPositionRelativeToTextBoundary)'(wdActiveEndAdjustedPageNumber)'(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文件名:= objDoc.Path和“”&“&objDoc.Name中的书签 E nd Sub