使用条件公式VBA计算枢轴表中的字段

我有这个问题,我不能解决,我正在写一个Excelmacros,build立一个数据透视表,从表中获取数据。 当表中的字段为0时,我不想执行计算字段的计算,并在数据透视表中显示空白单元格。

我的条件公式是这样的:

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

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

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

显示一个空的数据透视表,当我把相同的公式在Excel中使用数据透视表选项选项卡中的“字段,项目和设置”button顺利…所以我认为公式是正确的,但我必须做的在VBAmacros中也可以得到它的permorf?

提前致谢

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

无论如何,这是你的答案。 我通过使用Macro Recorder来查找在数据透视表中创build计算字段时使用的确切语法。 希望我find答案的方法可以帮助你在将来find更多的答案。

问题在于你引用VBA中的公式。 VBA需要在引号内有实际的引号,所以

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

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

需要是

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