我有一個excel,其中有一些帶小數的值。 值爲字符串,並且由於許多國家正在使用它,因此有些國家使用「,」逗號作爲小數位,其他國家使用「。」。點爲小數位。根據區域設置,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功能...
感謝
我認爲主要的問題是「該值是字符串」這是你應該開始解決你的問題。如果這些值是值,那麼切換本地化沒有問題。這些「字符串值」從哪裏來? –
爲什麼不在VBA中實現'NUMBERVALUE'函數並使用它? –
@Peh,值爲字符串的原因是因爲數據被保存在Mysql數據庫的背景上......在一個MYSQL字段中,我保存了各種excel單元格,所以有字符串和值組合在一起作爲字符串的組合... 然後,我將它從MySQL數據庫中檢索時轉換回值。 值和字符串輸入世界各地,所以他們來自不同的國家,一些使用逗號,一些使用點... – user1135218