C# Word 2007加载项:克隆Word.Range

C# Word 2007加载项:克隆Word.Range,c#,.net,ms-word,ms-office,add-in,C#,.net,Ms Word,Ms Office,Add In,我需要克隆Word.Range对象 我试图使用以下代码在每个单词上创建一个与给定字符串匹配的超链接。但是Hyperlinks.Add方法似乎修改了范围值rng,因此while循环永远运行,而当我注释Hyperkinks.Add行时,该循环工作得很好 rng.Find.ClearFormatting(); rng.Find.Forward = true; rng.Find.Text = value; rng.Find.Execute(); while (rng.Find.Found) {

我需要克隆Word.Range对象

我试图使用以下代码在每个单词上创建一个与给定字符串匹配的超链接。但是Hyperlinks.Add方法似乎修改了范围值rng,因此while循环永远运行,而当我注释Hyperkinks.Add行时,该循环工作得很好

rng.Find.ClearFormatting();
rng.Find.Forward = true;
rng.Find.Text = value;

rng.Find.Execute();
while (rng.Find.Found)
{
    rng.Document.Hyperlinks.Add(rng, rng.Document.Name, CorrespondingBookmark(rng.Text));
    rng.Find.Execute();
}

通过修改循环解决了我的问题:您不应该使用Forward选项,因为它似乎有缺陷

rng.Find.ClearFormatting();
rng.Find.Forward = false;
rng.Find.Text = value;

while (rng.Find.Execute())
{
     rng.Document.Hyperlinks.Add(rng, rng.Document.Name, CorrespondingBookmark(rng.Text));
     rng.Find.Execute();
}

我不知道它为什么会起作用……

与论坛网站不同,我们不使用感谢、感谢的帮助或签名。请参阅。您在问题中指出了问题行,但没有提供超链接的完整代码。添加,最后的这些点是什么?可能有问题。。。你有正确的语法吗?点的存在只是为了让它更容易理解,因为它只是一个由rng.Text组成的标记,用于查找超链接应该重定向到哪个书签。例如,如果rng.Text是000-01,则相应的书签将是000_01。但这不可能是问题所在,因为在这一策略中,范围没有修改。