【问题标题】:Word 2007 add-in : Clone Word.RangeWord 2007 加载项:克隆 Word.Range
【发布时间】:2014-03-07 05:29:49
【问题描述】:

我需要克隆 Word.Range 对象

我正在尝试使用以下代码在与给定字符串匹配的每个单词上创建一个超链接。但是 Hyperlinks.Add() 方法似乎修改了 Range 值 (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();
}

【问题讨论】:

  • 与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
  • 您在问题中指出了问题行,但没有提供Hyperlinks.Add 的完整代码,最后这些点是什么?可能有问题......你有正确的语法吗? (here for Word-VBA)
  • 这些点只是为了更容易理解,因为它只是 rng.Text 的一个特征,用于查找超链接应重定向到哪个书签(例如,如果 rng.Text 为 000-01,相应的书签将是 000_01)。但这不是问题,因为此特征中没有修改范围。

标签: c# .net ms-word ms-office add-in


【解决方案1】:

通过修改循环解决了我的问题:您不应该使用 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();
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多