格式点或逗号取决于位置

时间:2015-11-17 09:33:52

标签: excel vba excel-vba

我正在使用Vba-excel将csv文件导入excel。我坚持使用VBA中的formatpercent。如果我的区域设置为美国默认值,它可以正常工作。但是,如果任何区域使用逗号进行十进制,则它将无法正常工作。

    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中。

1 个答案:

答案 0 :(得分:0)

您应该使用Application.International来测试设置并应用不同的格式:

If Application.International(xlCountrySetting) <> 1 Then

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

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