使用system.Information()获取书签索引

时间:2019-03-26 07:31:53

标签: vba ms-word

我正在使用下面的代码来从结局中选择一个下拉列表。

ActiveDocument.FormFields(ActiveDocument.Range.Bookmarks(Selection.Information(30)).Name).Dropdown.Value

但是我无法通过Selection.Information(30)获取正确的书签索引,因此得到的书签名称不正确。

有人可以在这里帮助我吗?

1 个答案:

答案 0 :(得分:0)

获取当前活动/选定书签名称的名称的“常规”方式是:

Selection.Bookmarks(1).Name

由于这似乎是一个表单字段,因此也可以通过该集合获取名称:

Selection.Range.FormFields(1).Name

在注释中,请求用于书签索引,尽管“问题”中的请求用于书签名称...无论如何,要获取书签索引,请获取从文档开始到目录的所有书签的数量。选择的结尾。 (请注意,这将获取上一个书签的索引,而在选择中不必要)。

bkmIndex = ActiveDocument.Range(0, Selection.Range.End).Bookmarks.Count
Debug.Print ActiveDocument.Bookmarks(bkmIndex).Name

请注意,Information(30)是旧的Word Basic值(我不得不在1995年的文献中进行查询),在VBA对象模型中没有任何正式的等效项。出于向后兼容的原因,它仍然可以工作,但是在这种情况下,不能保证它将继续工作。