使用条件公式VBA在数据透视表中计算字段

时间:2012-05-11 10:36:39

标签: excel vba pivot-table calculated-field

我遇到了这个无法解决的问题,我正在编写一个Excel宏来构建一个从表中获取数据的数据透视表。 当表中的字段为0时,我不想执行计算字段的计算,并在数据透视表中显示空白单元格。

我的条件公式就是这个:

=IF((field1=0),"",(field1/field2))

将此公式放入VBA中,如下所示

pt.CalculatedFields.Add Name:="ptfieldname", Formula:="=IF((field1=0),"",(field1/field2))"

显示一个空的数据透视表,当我使用数据透视表选项选项卡中的“字段,项目和设置”按钮将相同的公式放在Excel中时顺利进行... 所以我认为这个公式是正确的,但是我必须做些什么才能让它在VBA宏中更好地运行permorf?!

提前致谢

1 个答案:

答案 0 :(得分:1)

欢迎来到SO。我自己在这里很新,但最近发现它非常有用。

无论如何,这是你的答案。我通过使用宏记录器找到它,以查看在数据透视表中创建计算字段时使用的确切语法。希望我找到答案的方法可以帮助您在将来找到更多答案。

问题在于您在VBA中引用公式的方式。

需要在引号内包含实际引号
=IF((field1=0),"",(field1/field2)) 

in

pt.CalculatedFields.Add Name:="ptfieldname", Formula:="=IF((field1=0),"",(field1/field2))"

需要

=If(field1=0,"""",(field1/field2))