使用VBA为负数设置带有千位分隔符、2位小数和减号的标准数字格式?

Posted

技术标签:

【中文标题】使用VBA为负数设置带有千位分隔符、2位小数和减号的标准数字格式?【英文标题】:Set standard number format with thousand separator, 2 decimals and minus sign for negative numbers using VBA? 【发布时间】:2015-01-21 11:35:40 【问题描述】:

我在 *** 上看到过之前提出的问题,如何使用千位分隔符和 2 位小数获得正常的数字格式。答案是设置:

    rng.NumberFormat = "##0.00"

但这是不完整的,因为至少在我的计算机上,我没有在数百万和数千之间找到任何空格分隔符。所以我把它改成了:

    rng.NumberFormat = "### ### ##0.00"

但这又是不完整的,因为出于某种原因,负数的格式看起来像是在减号和数字之间有一个空格。见下文:

- 12.4

因此,要获得 Excel 的“内置”“格式为数字”格式,还有一些事情要做。此外,我通过 VBA 应用的格式被 Excel 描述为自定义。

有没有办法将格式设置为标准内置格式,即带有千位分隔符、2 位小数和负数减号的数字?

我正在寻找类似的东西:

    rng.NumberFormat = "Number, 2, minus"

【问题讨论】:

您是否尝试过简单的#,##0.00,假设您的区域设置使用空格作为千​​位分隔符? 将多个# 放在一个序列中没有意义,即#,##0.00 => #,#0.00##0.00 => #0.00 应该是相同的格式。 【参考方案1】:
rng.NumberFormat = "# ##0.00:-# ##0.00"

您将正数的格式放在 : 之前,将负数的格式放在后面。您不需要在格式中放置数百个 # 符号,足以显示 1000 的分隔符是什么。

【讨论】:

如果数字是整数,我怎样才能使它在点后不显示零。例如 1000 而不是 1000.00 ,但如果小数点后有数字,则应显示为 1000.22 你要么有小数,要么没有。如果值为整数/长整数,则可以有条件地更改 NumberFormat。

以上是关于使用VBA为负数设置带有千位分隔符、2位小数和减号的标准数字格式?的主要内容,如果未能解决你的问题,请参考以下文章

带有千位分隔符和小数的数字格式(如有必要)

文本框只能输入数值,小数点,负数的问题

如何格式化带有千位分隔符和括号中的负数的数据透视表数字?

如何设置带两位小数的千位分隔符?

15、pandas的设置数字格式,小数位数、百分号、千位分隔符

是否有一种格式来设置千位分隔符并使用 Apache poi 设置两位小数?