首页 > 解决方案 > Value2 数字作为字符串

问题描述

我遇到了一些奇怪的行为。我经常不得不将 Double 值作为字符串传递,因为我需要区分“0”和“”。

看看这个简单的例子:(我在德语语言环境中,所以我的小数分隔符是“,”)

Sub TestNumbers()
    With ActiveSheet
        .Cells(1, 1).Value2 = "1,6"
        .Cells(1, 2).Value2 = "1,67"
        .Cells(1, 3).Value2 = "1,678"
        .Cells(1, 4).Value = "1,6789"
    End With
End Sub

现在看看输出: 为什么是鬼?

为什么在小数点后 3 位省略逗号?正如你所看到的那样.value,它发生了。.value2

标签: excelvbalocale

解决方案


VBA 就像在美国语言环境中一样运行。如果您在美国语言环境中手动将这些项目输入到单元格中,您会看到完全相同的结果,即一旦有足够的数字来保证逗号是千位分隔符,就会强制转换为数字。

我承认我并没有真正遵循您的逻辑“我经常必须将 Double 值作为字符串传递,因为我需要在“0”和“”之间进行区分。


推荐阅读