Excel小数点分隔符根据区域设置performance不同

我有一个Excel中有一些小数值。 这些值是string ,由于许多国家正在使用它,有些国家使用“,”逗号作为小数位,其他国家使用“。”。 点小数位。

一旦全球所有的数据都被编译完成,来自不同地区的人们就会用macros来处理数据。

为了让人们使用相同的设置,我在macros中更改它们的decimalseparator是一样的:

Application.UseSystemSeparators = False Application.DecimalSeparator = "," application.ThousandsSeparator = "." 

然后我运行某些macros来将这些值加在一起,这就是问题开始的地方。 对于欧洲人来说,这个macros是完美的。 macros首先将任何点转换为逗号(注意单元格的值是一个string):

 If InStr(NW.Cells(ttt, 100), ".") > 0 Then x2 = Replace(NW.Cells(ttt, 100), ".", ",") NW.Cells(ttt, 100) = x2 End If 

因此,如果NW.Cells(ttt,100)= 12.25将其转换为12,25,那么它会运行更多的macros(将所有值一起添加)。

但是如果一个人在美国运行这个macros,12.25就变成了1225

由于我已经在macros的开始将application.decimalsepator更改为“,”我不明白为什么macros的行为不同…

任何想法如何解决这个问题?

注意正在使用Excel 2007和Excel 2010,因此不能使用= NUM​​BERVALUE函数…

谢谢

 Sub changeSeparators() Dim myRange As Range Dim rng As Range Set myRng = ActiveSheet.Range("A1:A500") For Each rng In myRng rng.Value = Replace(rng.Value, "'", ",") If Left(Right(rng.Value, 3), 1) = "," Then rng.Value = Mid(rng.Value, 1, Len(rng.Value) - 3) & "." & Right(rng.Value, 2) End If Next rng End Sub 
Interesting Posts