我有一个excel,其中有一些带小数的值。 值为字符串,并且由于许多国家/地区都在使用它,因此某些国家/地区会使用","小数位的逗号,其他人使用"。"点到小数位。
一旦编制了全球所有数据,来自不同地区的人员将使用宏处理数据。
为了让人们使用相同的设置,我将它们的decimalseparator更改为完全相同:
Application.UseSystemSeparators = False
Application.DecimalSeparator = ","
application.ThousandsSeparator = "."
然后我运行某些宏来将值添加到一起,这就是问题开始的地方。 对于欧洲人来说,宏观工作非常完美。 宏首先将任何点转换为这样的逗号(注意单元格值是一个字符串):
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,然后再运行宏(将所有值加在一起)。
但是如果一个人在美国运行宏,12.25就会变成1225
因为我已将application.decimalsepator更改为","在宏的开头,我不明白为什么宏表现不同......
任何想法如何解决这个问题?
注意正在使用Excel 2007和Excel 2010,因此无法使用= NUMBERVALUE函数...
感谢
答案 0 :(得分:0)
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