在数据透视表中过滤日期=噩梦。代码有时有效,有时则无效

时间:2014-09-30 22:02:03

标签: excel vba

我在数据透视表中使用过滤器时遇到了很多麻烦。到目前为止,我发现成功的唯一方法是通过添加虚拟日期来删除我的数据列表中的任何空白。一旦我在数据透视表的源范围内只有一种类型的数据,我可以对数字进行pivotfields.numberformat(" 0.00"),然后过滤器工作,我可以将数据放回& #34;日/月/年"

我知道可以在源范围内使用此方法(pivotitem.visible = true / false),但我没有成功。

这是两个文件,相同的数据,相同的数据透视表,相同的代码。一个工作,另一个不工作。如果我能找到为什么它可以帮助我更好地理解这个问题。

有效的代码:

http://cjoint.com/14sp/DIExZVpRxgC.htm

不起作用的代码:

http://cjoint.com/14sp/DIEx0ru5BgM.htm

提前感谢您的帮助

Tweedi

1 个答案:

答案 0 :(得分:0)

回到我的初始文件,我设法取得了一些进展。请在这里找到我的文件: http://cjoint.com/14oc/DJbb2yqJ5XQ.htm

我设法能够在"(空白)"上应用PivotItem.Visible属性。将其添加到代码中:

mytable.ManualUpdate = True
Dim pf As PivotField
Set pf = ActiveSheet.PivotTables(1).PivotFields("date closed")
pf.AutoSort xlManual, pf.SourceName

现在谈到将其他日期与最大日期进行比较时,它不起作用,我认为这是因为它将dd / mm / yyyy与mm / dd / yyyy进行比较(我不确定但请查看在版画屏幕上):http://i62.tinypic.com/wv7o9l.jpg

有任何帮助吗?谢谢!

Tweedi