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

标签 vba regional-settings

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

myDouble= CDbl(stringDouble)

或者
myDouble = stringDouble

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

谢谢

最佳答案

正如您在评论中已经指出的,这是一个区域设置 - 因为您的系统正在使用 ,作为小数点分隔符,字符串被转换为 1200 .这种情况下的解决方法是用 Val 来转换它:

Sub Sample()
    Dim myDouble As Double
    Dim stringDouble As String
    stringDouble = "12.00"
    myDouble = Val(stringDouble)
End Sub

关于VBA 将字符串 "12.00"转换为 1200 而不是 12.00。这只发生在欧盟区域设置而不是美国设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979333/

相关文章:

vba - Outlook VBA 脚本将不会运行

excel - 如果特定范围内的单元格全部为空,则删除整行

vba - 从 VBA 插入公式时出现不同语言问题

powershell - 通过计划任务运行的Powershell脚本,显示区域设置问题

c# - 如何检测CurrentCulture是否被用户自定义?

excel - 棘手的 Excel 查找

vba - 在具有多列的列表框中添加项目

excel - VBA不断将句点更改为逗号

c# - 选择不同的区域选项会更改 C# 中数学运算的结果

vba - 我可以得到 VBA 代码中的注释文本吗