2013-02-06 84 views
2

我想获取Word文档中的所有书签,然后将它们推送到数组。书签必须按文件中的位置按名称排序。如何从Word文档中按位置顺序获取所有书签元素的列表:VBA/Word

ex。这里有书签的文件列表中,

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

我想书签,以保持它们的顺序,以使阵列看起来像如下,

array {bm_s, bm_h, bm_a, } 

前。它不应该看起来像下面,

array {bm_a, bm_h, bm_s, } 

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

回答

3

冲,所以我想通了,

下面是它如何做,如果别人有兴趣获取的所有书签相对于它的文档位置。

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 
+0

冲,所以我想我可能已经过早地跃升至结论,该代码事实上确实取文件的每个书签,但除了书签在页眉和页脚中。 – Mana

2

如果有人还想知道;您可以访问不同的部分MS Word文档中,像这样:

ActiveDocument.StoryRanges(wdPrimaryHeaderStory).Bookmarks.Count 
ActiveDocument.StoryRanges(wdMainTextStory).Bookmarks.Count 
ActiveDocument.StoryRanges(wdPrimaryFooterStory).Bookmarks.Count 
相关问题