2017-02-27 41 views
0

我正在使用excel dna来管理excel插件。在那里,我使用Range.NumberFormat = myformat;将数字格式应用于单元格。我事先不知道字符串myFormat,它是在后端定义的。在excel中验证数值的格式字符串(dna)

在好的情况下,myFormat类似于“0.00;(0.00)”或“### 0,00 \ _;; [Red] - ### 0,00 \ _” “TOTO”。在最新的情况下,excel单元格中的显示是##########或者没有意义的东西。

那么,有没有办法在将格式应用于单元格之前检查字符串myFormat是否为excel的valide数字格式?

谢谢, 马里奥。

+0

我很确定'#######'只是表示单元格不够宽,无法显示值。您的示例格式为我返回了值。 –

+0

是的,使用正确的格式示例,excel显示格式正确的值,并且适合半个单元格。但是,对于不正确的格式示例,excel有时会显示####,而其他时间格式的值(例如“toto”)会显示。 – Mario

+0

什么是不正确格式的示例?如果你的格式是“toto”,那么你会得到0 = toto,1 = toto,-1 = -toto。 –

回答

0
Sub tester() 
Dim rng1 As Range, rng2 As Range 

Set rng1 = Range("F1")' Formatted with 2 decimal places 
Set rng2 = Range("G1")' Formatted with 6 decimal places 

If rng1.NumberFormat <> rng2.NumberFormat Then 
Beep 
End If 

End Sub 
+0

这是很好的检查,如果我们有两个不同的格式在两个范围,但我想验证给定的字符串是否是一个有效的数字格式适用于单元格 – Mario

+0

我只是给你你需要的逻辑。我没有试图为你写马里奥的代码。如果variable.numberformat = myformat那么做一些事情,否则;做别的事。 –

+0

是的,但我的问题是非常不同的。我想在应用格式之前检查myformat是否有效。如果我做rng1.NumberFormat =“toto”,excel会显示一些没有意义的东西。所以,我想检查myFormat是否有效,然后再去实际行rng1.NumberFormat = myFormat – Mario