【发布时间】:2015-11-21 19:07:19
【问题描述】:
编辑 1:
Sub MultiItemPivotFilter()
Dim PI As PivotItem
For Each PI In ActiveSheet.PivotTables("test").PivotFields("date").PivotItems
If PI.Name < ActiveSheet.Range("H14").Value Or PI.Name > ActiveSheet.Range("H15").Value Then
PI.Visible = False
Else
PI.Visible = True
End If
Next PI
End Sub
H14 和 H15 只是从源表复制的固定日期,但 If 条件永远不会为真。它返回一个最终错误,因为它不能将所有行设置为
visible = false
结束编辑 1:
我正在尝试编写一个 VBA 脚本,它允许用户从两个日期之间的数据透视表中选择所有观察结果。到目前为止,我的脚本无法正常工作。
Sub datelist()
Set pf = Sheets("sheet1").PivotTables("test")
Set pt = pf.PivotFields("date")
For Each pit In pt.PivotItems
If pit.Value < Sheets("sheet1").Range("G14").Value Then pit.Visible = False
Next
End Sub
G14 是一个单元格,其中包含用户从菜单中选择的值。我想实现每一行的日期低于所选值设置为Visible = False
提前致谢
【问题讨论】:
-
您的代码在哪里出错?错误是什么?
-
它不会给我一个错误,它的简单不会返回任何东西。顺便说一句,我所有的字段都被格式化为日期单元格。
-
您能否正确解释您的问题中什么不起作用。简单地说它不工作并不能真正帮助找出可能出现的问题
-
我编辑了更多细节
-
数据透视表中的日期很有趣,并且可能存在区域设置问题。我写了一篇关于此的帖子,其中包含一些可能相关的非常有见地的 cmets。见dailydoseofexcel.com/archives/2013/11/09/a-date-with-pivotitems
标签: vba excel loops pivot-table