1

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

我的条件公式是这个:

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

将此公式放入VBA如下

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

显示一个空的数据透视表,当我使用数据透视表选项选项卡中的“字段,项目和设置”按钮将相同的公式放入 excel 时运行良好......所以我认为公式是正确的,但我必须做在 VBA 宏中也能很好地实现性能?!

提前致谢

4

1 回答 1

1

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

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

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

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

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

需要是

=If(field1=0,"""",(field1/field2))
于 2012-05-14T19:30:59.710 回答