VBA-excel中正确的NumberFormat

时间:2018-11-14 12:29:45

标签: excel vba excel-vba formatting

首先我知道这个问题听起来很简单。

我想在第三位数字后加一个逗号。例如:10'000或1'000以及100和10。我可以在Excel中使用“格式“>”数字“> 0”小数“来手动执行此操作。那给了我正确的格式。但是现在来了!如果我记录该操作的宏,则代码如下所示:

MyChart.Axes(xlValue).TickLabels.NumberFormat = "#'##0"

但这在应用时会产生其他结果,即:100'000 10'000 1'000 '100 '10

Here is what I get with "#'##0"

关于使用哪种格式代码的任何建议?我总是可以仔细检查所有刻度线,然后分别检查值和格式,但这很痛苦。如果不需要,我宁愿不这样做。

2 个答案:

答案 0 :(得分:4)

如果要将Excel中的千位分隔符从默认的,更改为',请使用

Application.ThousandsSeparator = "'" 
Application.UseSystemSeparators = False

然后

.NumberFormat = "#,##0"

将产生

enter image description here

请注意,这将更改整个Excel(不仅是该工作簿)中的千位分隔符。


或者,您可以在系统设置中在系统范围内更改它。

答案 1 :(得分:3)

我想您应该使用“#,## 0”,其中逗号标记千位分隔符,可以在操作系统设置中将其定义为撇号。 如果您要与系统设置不同,我不知道该如何格式化。 参考:https://www.ablebits.com/office-addins-blog/2016/07/07/custom-excel-number-format/