如何使用c#/VB.NET在word中插入书签

如何使用c#/VB.NET在word中插入书签,c#,.net,vb.net,ms-word,bookmarks,C#,.net,Vb.net,Ms Word,Bookmarks,我正在尝试使用C#在word文档中添加书签,但它不起作用,而且无论是在msdn文档中还是在internet上,我都找不到任何帮助。下面是我试图做的 我正在阅读word文档,然后在文档中搜索关键字,然后将文本转换为超链接,效果非常好。现在,我想将该文本创建为书签,而不是超链接。我在C#中完成了所有这些,您需要掌握开放式XML SDK。没有很好的记录 我在很久以前发布了一篇关于将图像插入Word文档的文章。一点都不一样,但你永远不知道,你可能会找到一些指引让你开始 Dim\u wordApp作为应用

我正在尝试使用C#在word文档中添加书签,但它不起作用,而且无论是在msdn文档中还是在internet上,我都找不到任何帮助。下面是我试图做的


我正在阅读word文档,然后在文档中搜索关键字,然后将文本转换为超链接,效果非常好。现在,我想将该文本创建为书签,而不是超链接。我在C#

中完成了所有这些,您需要掌握开放式XML SDK。没有很好的记录

我在很久以前发布了一篇关于将图像插入Word文档的文章。一点都不一样,但你永远不知道,你可能会找到一些指引让你开始

Dim\u wordApp作为应用程序类
Dim_文档作为文档
Dim pos,len为整数
Dim reg As Regex
将书签名称设置为字符串
作为对象的Dim rng
Dim search As String=“要搜索的某些文本”
Dim nullobj As Object=System.Reflection.Missing.Value
Dim isReadOnly As Object=False
_wordApp=新应用程序类()
'打开word文档
_doc=_wordApp.Documents.Open(文件名,isReadOnly,nullobj,nullobj,nullobj_
nullobj,nullobj,nullobj,nullobj,nullobj,nullobj_
nullobj,nullobj,nullobj,nullobj,nullobj)
_可见=False
'要搜索的关键字
reg=新的正则表达式(搜索)
'在word文件中查找文本
Dim m As Match=reg.Match(_doc.Range.Text,0)
pos=m.索引
'开始是内容中标记的开始位置。。。
len=search.Length
'选择文本
rng=_单据范围(位置、长度+位置)
bookmarkName=“MyBookmarkName”
_doc.Bookmarks.Add(bookmarkName,rng)

谢谢分享,但我想使用Word API。下面的代码使我的应用程序崩溃。如果我添加超链接,下面的代码可以工作,但是如果我只想添加书签,那么它就不能工作。我已经注释了超链接代码。”_doc.Hyperlinks.Add(_doc.Range(pos,len+pos),Address,_'子地址,屏幕提示,TextToDisplay,_'Target)bookmarkName=_doc.Range(pos,len+pos)。Text Dim rng As Object=_doc.Range(pos,len+pos)_doc.Bookmarks.Add(bookmarkName,rng)好的,我已经开始工作了。令人困惑的是,它正在崩溃,所以.NETAPI中有一个bug。我注意到书签名中不能有空格。我删除了空间,现在它正在工作。谢谢你的帮助,太好了。我建议你将你的修复作为一个答案,然后接受它(回答和接受你自己的问题是很好的),因为它将帮助其他人在将来遇到同样的问题。如何在word文档中的特定位置(使用左、右)添加此书签?