VSTO Word Office Interop:查找对书签的引用

VSTO Word Office Interop: Find References to Bookmark

给定包含 Bookmark 的 Word 选区 - 例如像这样的标题(在 SelectionChange 事件中):

var selectionWithBookmark = e.Selection.Bookmarks.Cast<dynamic>().Select(b => b.Range as Range).FirstOrDefault();

如何在文档中找到引用此书签的所有 cross-references(即 Type == WdFieldType.wdFieldRef)?

我不仅要查找 Field 本身,还要查找包含这些字段的段落。

寻找 C# 或 VB 的答案。

我可以 loop/iterate 文档中的所有引用,但是无法 link 它们到书签(除了 Code 属性 - 但是根据我所见,书签上实际上并不存在 REF 编号)。它缺少的是某种形式的 Target 属性,我可以将其与书签本身进行比较。

问题中的以下陈述让我想知道...

the REF number doesn't actually exist on the bookmark either from what I can see.

书签 name 应包含 REF 编号,但它前面会有一个下划线 _,因此默认情况下该名称不会显示在 UI 中.

在“书签”对话框中有一个小复选框 "Hidden bookmarks":单击它两三下,应显示一个列表,如下面的屏幕截图所示。

Debug.Print(bookmark.Name) 也应该显示这个。

知道书签名称后,应该不难找到相应的 REF 字段。