簡體   English   中英

Excel小數點分隔符根據區域設置的不同行為

[英]Excel decimal separator behaves differently based on regional setting

我有一個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,因此無法使用= 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM