2015-11-17 20 views
1

我正在使用Vba-excel將csv文件導入到excel中。我堅持使用VBA中的格式。如果我的區域設置爲美國默認值,則它可以正常工作。但是,如果任何區域使用逗號作爲小數點,它就不能正常工作了。格式點或逗號取決於位置

fuction formatPercentValue (value as string) as string //value = 1 
    formatPercentValue = formatPercent(Round(CDbl(Val(value)), 5), 6) 
    // US: 100.000000%, HU (Hungary): 100,000000% 

當我打電話說

r as range 
r.value = formatPercentValue (value) 
// US: r.value = 1, HU: r.value = 1000000 

我不知道如何解決,因爲當它出現在Excel中US: 100% HU: 100000000%。我不知道爲什麼r.value在美國可以設置1,但它不在HU。

回答

0

您應該使用Application.International測試設置和應用不同的格式:

If Application.International(xlCountrySetting) <> 1 Then 

If Application.International(xlDecimalSeparator) <> "." Then 

https://support.microsoft.com/en-us/kb/213833

+0

嗨。在檢查'decimalSeparator'後,我們怎麼知道爲返回'r.value'設置?我真的不知道在設置'r.value'時能得到正確的數字嗎? –

+0

您可以提供代碼:formatPercent作爲您的流程的這一部分,讓我知道你什麼時候做完了,我會看看我能做什麼做! ;) – R3uK

+0

你知道爲什麼'r.value'方法在'dot'和'comma'分隔符中得到不同的值嗎?我的郵政編碼是主要的代碼。我嘗試調試,並且得到了不同的值,我標記爲'//' –