如何以编程方式将撇号插入 Cell 对象 (Visio Addin)
How to insert programmatically apostrophes into Cell object (Visio Addin)
当我尝试像这样将撇号插入单元格时:
newName = "name with aposttrophes \"";
myShape.Cells[myCell].FormulaU = '"' + newName + '"';
我遇到以下异常:"\n\nMissing quote."
是否可以向 Cell.Formula Visio 对象插入撇号?
TLDR;使用双引号:
newName = "name with aposttrophes \"\"";
说明:当您使用.FormulaU
时,您实际上设置了一个公式值。意思是,您指定的表达式由 Visio 解释为公式并计算。常量字符串是有效的表达式。字符串中的单引号 "ends" 您的公式,您在其中得到奇数个引号(未闭合的引号),因此出现此错误消息。所以在分配之前,只需复制字符串中的所有引号,如下所示:
myShape.Cells[myCell].FormulaU = '"' + newName.Replace("\"", "\"\"") + '"';
在回读时(如果你使用相同的 .FormulaU
来回读,而不是 .Characters.Text
,这是更可取的,因为它计算字段),做相反的事情并去重所有报价。
当我尝试像这样将撇号插入单元格时:
newName = "name with aposttrophes \"";
myShape.Cells[myCell].FormulaU = '"' + newName + '"';
我遇到以下异常:"\n\nMissing quote."
是否可以向 Cell.Formula Visio 对象插入撇号?
TLDR;使用双引号:
newName = "name with aposttrophes \"\"";
说明:当您使用.FormulaU
时,您实际上设置了一个公式值。意思是,您指定的表达式由 Visio 解释为公式并计算。常量字符串是有效的表达式。字符串中的单引号 "ends" 您的公式,您在其中得到奇数个引号(未闭合的引号),因此出现此错误消息。所以在分配之前,只需复制字符串中的所有引号,如下所示:
myShape.Cells[myCell].FormulaU = '"' + newName.Replace("\"", "\"\"") + '"';
在回读时(如果你使用相同的 .FormulaU
来回读,而不是 .Characters.Text
,这是更可取的,因为它计算字段),做相反的事情并去重所有报价。