0
我有一个MS Word加载项需要从一系列文本中完全基于其格式提取文本:在我的情况下,特别是如果文本带下划线或需要找到加下划线或敲入的字符/单词的范围,以便我可以跟踪它们。使用Word interop找到一个带有特定格式的文本的范围
我的第一个想法是使用Range.Find
,因为是outlined here,但是当我不知道该字符串是什么,我正在寻找这是行不通的:
var rng = doc.Range(someStartRange, someEndRange);
rng.Find.Forward = true;
rng.Find.Format = true;
// I removed this line in favor of putting it inside Execute()
//rng.Find.Text = "";
rng.Find.Font.Underline = WdUnderline.wdUnderlineSingle;
// this works
rng.Find.Execute("");
int foundNumber = 0;
while (rng.Find.Found)
{
foundNumber++;
// this needed to be added as well, as per the link above
rng.Find.Execute("");
}
MessageBox.Show("Underlined strings found: " + foundNumber.ToString());
我会愉快地解析发表自己的文字,但不知道如何做到这一点,同时仍然知道格式。提前感谢任何想法。
编辑:
我改变了我的代码来解决找到强调的问题,并与改变while循环永远不会终止。更具体地说,rng.Find.Found
找到带下划线的文本,但它会一遍又一遍地找到相同的文本,并且永远不会终止。
编辑2: 一旦我加了while循环中的附加Execute()
呼叫时,发现需要发挥作用。
感谢您的建议,但这并不解决根本问题:现在,while循环会一直持续下去。 – c0nn 2014-11-24 15:19:49
在我做了您的更改并在第二次编辑中进行了更改后,查找按需要进行。标记你的答案是正确的。谢谢! – c0nn 2014-11-24 15:53:44