【发布时间】:2017-02-27 10:59:35
【问题描述】:
我正在使用 excel dna 来管理 excel 插件。在那里,我使用Range.NumberFormat = myformat; 将数字格式应用于单元格。我事先不知道字符串myFormat,它是在后端定义的。
在好的情况下 myFormat 类似于 "0.00;(0.00)" 或 "# ##0,00\ _€;[Red]-# ##0,00\ _€",在其他情况下类似于 "托托”。在最新的情况下,excel单元格中的显示是##########或没有意义的东西。
那么,在将格式应用于单元格之前,有没有办法检查字符串 myFormat 是否是 excel 的有效数字格式?
谢谢, 马里奥。
【问题讨论】:
-
我很确定
#######只是表示单元格不够宽,无法显示该值。您的示例格式为我返回了值。 -
是的,使用正确的格式示例,excel 显示的值格式正确,并且适合半个单元格。但是对于不正确的格式示例,excel有时会显示####,而有时会显示格式的值(例如“toto”)。
-
什么是不正确格式的例子?如果您的格式是“toto”,那么是的,您将得到 0=toto、1=toto、-1= -toto。
-
也许我没有正确解释自己。对不起。我想要的非常简单,我有一个字符串“myFormat”,我想将其作为数字格式应用到使用 excel dna 的单元格。但首先我想检查字符串“myFormat”是否是有效的数字格式。例如“0.00;(0.00)”是有效的,而“toto”不是。我事先不知道字符串“myFormat”,它们是在某个后端定义的。
-
在这种情况下,也许您可以制作一个可接受格式的数组,并根据该数组中的每个元素检查您的字符串。 myarray = array("0.00;(0.00)", "# ##0,00\ €;[红色]-# ##0,00\ _€", "_(#.##);(#.##)", "#???/???").如果您的字符串不符合任何可接受的格式,则将其更改为符合要求的格式。
标签: excel excel-interop excel-dna vba