Ms word VSTO Word Office互操作:查找对书签的引用

Ms word VSTO Word Office互操作:查找对书签的引用,ms-word,vsto,office-interop,office-addins,word-interop,Ms Word,Vsto,Office Interop,Office Addins,Word Interop,给定Word中包含书签的选项-例如,SelectionChange事件中的标题,如: 如何在文档中找到引用此书签的所有交叉引用,即Type==WdFieldType.wdFieldRef 我不仅要查找字段本身,还要查找包含这些字段的段落 在C或VB中寻找答案 我可以循环/迭代文档中的所有引用,但是除了Code属性之外,没有办法将它们链接到书签-但是从我看到的书签上也没有实际的引用号。它缺少的是某种形式的目标属性,我可以将其与书签本身进行比较。问题中的以下陈述让我想知道 书签上的参考号实际上不存在

给定Word中包含书签的选项-例如,SelectionChange事件中的标题,如:

如何在文档中找到引用此书签的所有交叉引用,即Type==WdFieldType.wdFieldRef

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

在C或VB中寻找答案


我可以循环/迭代文档中的所有引用,但是除了Code属性之外,没有办法将它们链接到书签-但是从我看到的书签上也没有实际的引用号。它缺少的是某种形式的目标属性,我可以将其与书签本身进行比较。

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

书签上的参考号实际上不存在,或者从什么地方来的 我看得出来

书签名称应包含参考号,但前面会有下划线,因此默认情况下,该名称不会显示在UI中

在“书签”对话框中有一个小复选框隐藏书签:单击它两次或三次,就会显示一个列表,如下面的屏幕截图所示

Debug.Printbookmark.Name也应该显示这一点


一旦知道书签名称,就不难找到相应的REF字段。

我在这方面有点困难,a会有帮助,但是。。。从我看到的书签上也没有参考号。实际上,它应该是,但前面有一个下划线,因此默认情况下,该名称不会显示在UI中。在“书签”对话框中有一个隐藏书签的复选框:单击两次或三次,就会显示一个列表。还有Debug.Printbookmark.Name,您应该会看到它吗?谢谢Cindy,您对.Name属性的评论使我意识到我在使用bookmark查看错误的对象选择-即不具有该属性的包含范围。与实际的书签对象,它的工作完美无瑕!你想把这变成一个答案,让我接受吗?
var selectionWithBookmark = e.Selection.Bookmarks.Cast<dynamic>().Select(b => b.Range as Range).FirstOrDefault();