我遇到了这个无法解决的问题,我正在编写一个Excel宏来构建一个从表中获取数据的数据透视表。 当表中的字段为0时,我不想执行计算字段的计算,并在数据透视表中显示空白单元格。
我的条件公式就是这个:
=IF((field1=0),"",(field1/field2))
将此公式放入VBA中,如下所示
pt.CalculatedFields.Add Name:="ptfieldname", Formula:="=IF((field1=0),"",(field1/field2))"
显示一个空的数据透视表,当我使用数据透视表选项选项卡中的“字段,项目和设置”按钮将相同的公式放在Excel中时顺利进行... 所以我认为这个公式是正确的,但是我必须做些什么才能让它在VBA宏中更好地运行permorf?!
提前致谢
答案 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))