如何根据表格中的信息添加书签

时间:2018-10-05 08:40:49

标签: bookmarks

我在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

0 个答案:

没有答案