VBA将字符串“12.00”转换为1200而不是12.00。这仅在欧盟区域设置而非美国设置中发生

时间:2013-02-20 11:59:01

标签: vba regional-settings

我不知道为什么,但是vba中的字符串是“12.00”,当我转换为双重

myDouble= CDbl(stringDouble)

myDouble = stringDouble

我无能为力......有什么帮助吗? (我无法在所有电脑上将区域设置更改为美国..)

感谢

2 个答案:

答案 0 :(得分:7)

正如您在评论中已经提到的,这是一个区域设置 - 因为您的系统使用,作为小数点分隔符,字符串将转换为1200。在这种情况下,解决方案是使用Val

进行转换
Sub Sample()
    Dim myDouble As Double
    Dim stringDouble As String
    stringDouble = "12.00"
    myDouble = Val(stringDouble)
End Sub

答案 1 :(得分:2)

这很可能是由于区域设置 - 小数分隔符不同。例如。在我的语言环境中它是, - 这就是为什么对于字符串到数字的转换我使用这样的语法:

x = "12.00"
DBLnum = CDbl(Replace(x, ".", ","))