C# Word-用超链接替换文本

C# Word-用超链接替换文本,c#,ms-word,vsto,C#,Ms Word,Vsto,我正在开发一个MS Word加载项,它读取文档的内容,并用超链接替换出现的每个特定单词 到目前为止,我提出了这个可行的算法 // Initializes the Find parameters searchRange.Find.ClearFormatting(); searchRange.Find.Forward = true; searchRange.Find.Text = "foo"; do { searchRange.Find.Execute(Wrap: Word.WdFi

我正在开发一个MS Word加载项,它读取文档的内容,并用超链接替换出现的每个特定单词

到目前为止,我提出了这个可行的算法

// Initializes the Find parameters
searchRange.Find.ClearFormatting();
searchRange.Find.Forward = true;
searchRange.Find.Text = "foo";
do
{  
      searchRange.Find.Execute(Wrap: Word.WdFindWrap.wdFindStop);

      if (searchRange.Find.Found)
      {
           // Creates a Hyperlink at the found location in the current document 
           this.WordDocument.Hyperlinks.Add(searchRange, externalLink, link, "bar");
      }
      searchRange.Find.Execute(Wrap: Word.WdFindWrap.wdFindStop);
} while (searchRange.Find.Found);
但是,这段代码在较大的文档上运行缓慢。因此,我不想一个接一个地添加超链接,只想使用
Find.Replacement
对象和
WdReplace.ReplaceAll
属性

但是,我无法用超链接替换我的搜索结果

有没有办法使用
replace
方法用超链接替换文本? 换句话说,我想找到一种方法来做到这一点:

Find.Replacement.Text=新建超链接(…)

另一方面,我看到,通过在Word中点击
Alt+F9
,我们可以将超链接视为代码。 代码如下所示:
{HYPERLINK\l“link”\o“Caption”}

另一个解决方案是能够将文本替换设置为该字符串,并让Word对其进行解释,从而创建链接


谢谢阅读。

据我所知,只能通过编程或使用CTRL-F9插入字段。我认为有两个可能的原因:

  • 它们不是简单的文本。它们有两个范围,即
    代码
    结果
    ,在任何时候都只显示其中一个范围
  • 用户如何插入看起来像代码但不应该是代码的文本,除非有特殊的机制来创建代码