excel - Value2 数字作为字符串

标签 excel vba locale

我遇到了一些奇怪的行为。
我经常不得不将 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

现在看看输出:
Why the hell?

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

最佳答案

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

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

关于excel - Value2 数字作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52856304/

相关文章:

vba - 如果甚至没有一个单元格是红色或蓝色,则删除整行

vba - 如何将路径从 "specialfolders(16)"更改为 C 盘上的 XYZ 文件夹?

excel - 通过VBA复制粘贴图表时出错

excel - 在access vba中调用excel函数

c++ - 如何更改默认语言环境的千位分隔符?

macos - 启动 vim 时的错误信息 : "Failed to set locale category LC_NUMERIC to en_CH" (or en_BR, en_RU & LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES)

Excel VBA Vlookup 多列

excel - RANK 仅适用于引用?加权排名

vba - Excel VBA,最后一行的对象定义错误

javascript - 使用 JavaScript 按字母顺序排序丹麦语?