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

Tot*_*.js 2 vba regional-settings

我不知道为什么,但是vba中的字符串是"12.00",当我转换为双倍时

myDouble= CDbl(stringDouble)
Run Code Online (Sandbox Code Playgroud)

要么

myDouble = stringDouble
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Pet*_*ert 7

正如您在评论中已经注意到的那样,这是一个区域设置 - 当您的系统,用作小数分隔符时,字符串将转换为1200.在这种情况下的解决方案是将其转换为Val:

Sub Sample()
    Dim myDouble As Double
    Dim stringDouble As String
    stringDouble = "12.00"
    myDouble = Val(stringDouble)
End Sub
Run Code Online (Sandbox Code Playgroud)