C# 如何使用word互操作获取word文档中特定单词的范围

C# 如何使用word互操作获取word文档中特定单词的范围,c#,.net,winforms,ms-word,office-interop,C#,.net,Winforms,Ms Word,Office Interop,我正在创建一个C#程序,在word文档中插入一个表。现在,我需要在不同的word文档中的特定位置插入一个表。我所有的word文档/模板中都有一个单词,我想在其中插入表格。为了能够在特定的word文档位置插入表,我需要获得word的位置范围。是否有任何可能的方法可以在word文档中获取特定单词的范围 在我搜索过的参考文献中,我所能看到的只是使用空格、单词、句子等的计数来获取范围,例如: object start = doc.Words[2].Start; //start of the second

我正在创建一个C#程序,在word文档中插入一个表。现在,我需要在不同的word文档中的特定位置插入一个表。我所有的word文档/模板中都有一个单词
,我想在其中插入表格。为了能够在特定的word文档位置插入表,我需要获得word的位置范围
。是否有任何可能的方法可以在word文档中获取特定单词的范围

在我搜索过的参考文献中,我所能看到的只是使用空格、单词、句子等的计数来获取范围,例如:

object start = doc.Words[2].Start; //start of the second word
object end = doc.Words[2].End; // start of the third word

Word.Range myRange = doc.Range(ref start, ref end);
因为我的word文档中的字数是动态的,所以上面的代码没有多大帮助


是否有任何方法可以使用C#word interop获取word文档中特定单词的范围?

您可以使用空(或任何)范围的
查找
对象来设置文档中特定单词/字符串的范围边界:

Word.Range range = document.Range(0, 0);
if (range.Find.Execute("<table>")) {
    // range is now set to bounds of the word "<table>"
}
Word.Range=document.Range(0,0);
if(range.Find.Execute(“”){
//范围现在设置为单词“”的边界
}
Execute
方法具有附加参数(用于执行不区分大小写的匹配等)