为什么我的查找和 select 代码 select 都是 Word 中的文本?
Why my find and select code selects all text in Word?
我想使用 C# 查找并 select Word 文档中括号内的所有文本。但它 select 全部是文本。
这是这部分的完整代码:
private void StartAll_Click(object sender, EventArgs e)
{
foreach (var item in fileLIST.Items)
{
// Open + activate Word
Word._Application word_app = new Word.Application();
//visible or not
word_app.Visible = true;
word_app.Documents.Open(item.ToString());
Word.Range range = word_app.ActiveDocument.Content;
Word.Find find = range.Find;
find.MatchWildcards = true;
find.Text = "\[*\]";
find.Forward = true;
find.Wrap = Word.WdFindWrap.wdFindContinue;
find.ClearFormatting();
find.Execute();
// unhide hide all
range.Font.Hidden = 1; // 1 = False
// Save and close
word_app.ActiveDocument.Save();
object SaveChanges = Word.WdSaveOptions.wdSaveChanges;
word_app.Quit();
}
要查找简单括号中的文本,必须对括号字符进行转义;而不是选择执行查找所需的范围。 ;-):
word_app.Documents.Open(item.ToString());
Word.Range range = word_app.ActiveDocument.Content;
Word.Find find = range.Find;
find.MatchWildcards = true;
find.Text = @"\[*\]";
find.ClearFormatting();
find.Execute();
while (find.Found)
{
// unhide hide all
range.Font.Hidden = 1; // 1 = F
find.Execute();
}
"\[*\]"
应该是 "\[*\]"
。
我想使用 C# 查找并 select Word 文档中括号内的所有文本。但它 select 全部是文本。
这是这部分的完整代码:
private void StartAll_Click(object sender, EventArgs e)
{
foreach (var item in fileLIST.Items)
{
// Open + activate Word
Word._Application word_app = new Word.Application();
//visible or not
word_app.Visible = true;
word_app.Documents.Open(item.ToString());
Word.Range range = word_app.ActiveDocument.Content;
Word.Find find = range.Find;
find.MatchWildcards = true;
find.Text = "\[*\]";
find.Forward = true;
find.Wrap = Word.WdFindWrap.wdFindContinue;
find.ClearFormatting();
find.Execute();
// unhide hide all
range.Font.Hidden = 1; // 1 = False
// Save and close
word_app.ActiveDocument.Save();
object SaveChanges = Word.WdSaveOptions.wdSaveChanges;
word_app.Quit();
}
要查找简单括号中的文本,必须对括号字符进行转义;而不是选择执行查找所需的范围。 ;-):
word_app.Documents.Open(item.ToString());
Word.Range range = word_app.ActiveDocument.Content;
Word.Find find = range.Find;
find.MatchWildcards = true;
find.Text = @"\[*\]";
find.ClearFormatting();
find.Execute();
while (find.Found)
{
// unhide hide all
range.Font.Hidden = 1; // 1 = F
find.Execute();
}
"\[*\]"
应该是 "\[*\]"
。