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