如何移动范围的起始位置直到到达双引号

How do I move the start position of a range until a double quotation mark is reached

我想移动 Range 对象的起始位置,直到遇到第一个双引号。我使用了这段代码,但它并没有移动以达到标记:

object cSet = "\"";
Range range = Globals.ThisAddIn.Application.Selection.Range;
range.MoveStartUntil(cSet);

但是,如果我使用不同的角色,它会移动以满足角色。我认为这种行为的原因与 " 用于声明字符串文字的专用函数有关。是否可以使用双引号作为字符集的一部分来将范围开始或结束位置移动到?

我已经根据@freeflow 在评论中提供的提示找到了解决方案。

word文档中的引号是智能弯引号,不同于字符串中使用的直引号"。因此,我必须通过从文档中获取引号并将其转换为 int 来获取智能弯引号的字符代码表示形式:

Range range = Globals.ThisAddIn.Application.Selection.Range int code = (int)range.Text

这分别为开盘和收盘智能报价返回了 8220 和 8221。

所需字符集变为:

object cSet = "\"" + (char)8220 +(char)8221;

直引号仍包含在 cSet 中,以防加载项在智能引号已转换为直引号的文档中遇到它。