使用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位小数和减号的标准数字格式?的主要内容,如果未能解决你的问题,请参考以下文章