我正在Excel 2010中运行一些VBA,以便将电子表格中的表格中的数字输出到外部PowerPoint演示文稿中。由于涉及的数字种类繁多,我使用宏阅读的表中指定的自定义格式化字符串来确定输出格式,如下所示:
CellData = Format(SourceData,FormattingCode)
我已经能够让这个工作几乎没有困难的数字在数百万(0,,)和百分比(0。然而,我现在想要以百万为单位的数字,但显示一个小数位,即1,200,000应该呈现为1。2
用于执行此操作的格式代码通常为(0.0,,),我可以看到它在正常的单元格格式设置中工作。然而,当我将其传递给format函数时,我得到了一个未舍入到小数点后一位的数字,没有像1200000这样的分隔符。0.
知道为什么吗我知道Format函数与自定义格式略有不同,因为它不支持任何单元格对齐功能,原因很明显,但我不明白为什么这应该有所不同。有谁知道我怎样才能得到输出我想要的格式的函数?
非常感谢
3条答案
按热度按时间vq8itlhq1#
#,0,,.0
这在SSRS RDL中的
format()
函数中起作用。我真正的完整漂亮的是[#,0,,.0M;(#,0,,.0M);'']
14ifxucb2#
VBA Format()函数将与一些数字格式斗争,将一个大值转换为具有1个小数位的数百万,我使用这个。
这将输出:
v1l68za43#
VBA格式函数无法处理此格式字符串。所以:
将生成错误的字符串。使用这个代替:
EDIT#1:
用一个单元格,用数字处理它。格式化它。转换为字符串: