如何按位置按顺序获取Word文档中所有书签元素的列表:VBA / Word

时间:2013-02-06 09:18:54

标签: vba ms-word word-vba

我想获取Word文档中的所有书签,然后将它们推送到数组中。书签必须按文档中的位置排序,而不是按名称排序。

离。这是文档中的书签列表,

[bm_s]  (header)
[bm_h]  (title)
[bm_a]  (footer)

我希望书签保持顺序,以便数组看起来如下,

array {bm_s, bm_h, bm_a, }

离。它不应该如下所示,

array {bm_a, bm_h, bm_s, }

我从文档工作中获取了所有书签。在获取并推送到数组时,我以随机顺序获取所有书签。

2 个答案:

答案 0 :(得分:3)

Oki,所以我想出来了,

如果其他人有兴趣获取有关其在文档上的位置的所有书签,那么这是如何完成的。

Dim objDoc As Document
Set objDoc = ActiveDocument

For i = 1 To objDoc.Bookmarks.Count
Debug.Print objDoc.Range.Bookmarks(i) 'here you can change the code to push the bookmarks in an array
Next i

答案 1 :(得分:2)

如果有人还想知道;您可以访问MS Word文档的不同部分,如下所示:

ActiveDocument.StoryRanges(wdPrimaryHeaderStory).Bookmarks.Count
ActiveDocument.StoryRanges(wdMainTextStory).Bookmarks.Count
ActiveDocument.StoryRanges(wdPrimaryFooterStory).Bookmarks.Count