C# 在对文档进行更改后,如何更新特定范围的开始和结束位置?

C# 在对文档进行更改后,如何更新特定范围的开始和结束位置?,c#,com,ms-word,range,office-interop,C#,Com,Ms Word,Range,Office Interop,我正在用C#创建MS Office Word加载项。在处理文档时,我需要从文档中获取一些信息 我获取文档的某个范围,并保存它 例如,在文本中: Text1 text2text3text4 我保存“text3”的范围。它的Startposition=13,Endposition=17(据我所知,字符数) 如果我更改此单词前面的文本: Text1新TEXT TExt2 text3 text4 其范围的位置将保持不变。当尝试选择文本时,我得到的文本范围不正确 编辑文档后,是否有方法更新范围对象的数据?

我正在用C#创建MS Office Word加载项。在处理文档时,我需要从文档中获取一些信息

我获取文档的某个
范围
,并保存它

例如,在文本中:

Text1 text2text3text4

我保存“text3”的
范围
。它的
Start
position=13,
End
position=17(据我所知,字符数)

如果我更改此单词前面的文本:

Text1新TEXT TExt2 text3 text4

范围的位置将保持不变。当尝试选择文本时,我得到的文本范围不正确

编辑文档后,是否有方法更新
范围
对象的数据?

状态:

每个范围对象由起始和结束字符位置定义

那么你的假设是:

我保存“text3”的范围。它的开始位置=13,结束位置=17(据我所知,字符数)

。。。这是正确的

其范围内的位置将保持不变。当尝试选择文本时,我得到的文本范围不正确

我相信这是预期的行为,我认为它非常符合文档中关于范围的说明:

是否有方法在编辑后更新范围对象的数据 文件

据我所知,这是不可能的,而且据我所知,也没有说这应该是可能的


起初,我认为可能存在一个封装此类功能的
Word
对象,文档上的
Words
集合只包含表示每个单词的
范围,这也没有多大帮助。

感谢您的回复!我同意你的看法。我继续寻找问题的解决方案,但我认为我需要手动编写这个算法。我在做什么。