我想移动Range
对象的起始位置,直到它遇到第一个双引号。我使用了这段代码,但是它并没有达到要求:
object cSet = "\"";
Range range = Globals.ThisAddIn.Application.Selection.Range;
range.MoveStartUntil(cSet);
但是,如果我使用其他字符,它将移动以满足该字符。我相信此行为的原因与"
的专用功能声明字符串文字有关。是否可以将双引号用作字符集的一部分,以将范围的起始或结束位置移至?
我已经使用@freeflow在注释中提供的提示找出了解决方案。
单词文档中的引号是智能的卷曲引号,它与字符串中使用的直引号"
不同。因此,我必须通过获取文档中的引号并将其转换为int来获得智能卷曲引号的字符代码表示形式:
Range range = Globals.ThisAddIn.Application.Selection.Range
int code = (int)range.Text
这分别返回开和关智能报价的8220和8221。
所需的字符集将变为:
object cSet = "\"" + (char)8220 +(char)8221;
如果在智能引号已转换为直线引号的文档中,“添加”在文档中遇到它,则cSet中仍会包含直线引号。