如何在VBA中过滤数据透视表位置?

时间:2018-02-21 10:39:14

标签: excel excel-vba pivot vba

我试过在这个网站上找到答案,我没有运气,所以希望有人可以帮助我。我无法提供示例表,因为数据是私有的,但我会附上一个屏幕截图。

This is the graph and pivot table

我想尝试删除底部的两行(Blank和> 15/5/18)。 15/5/18日期每天都会更改,因此我无法按名称引用它,如果我尝试隐藏名为blank的那个,我会收到1004错误。

Sub removeblanks()
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem

Application.ScreenUpdating = False

Set pt = ActiveSheet.PivotTables("PivotTable1")
Set pf = pt.PivotFields("Due Date")

For Each pi In pf.PivotItems
    pi.Visible = False 'Hide each by default, then show only the ones we want
    If pi.Value = "Jan" Then pi.Visible = True
    If pi.Value = "Feb" Then pi.Visible = True
    If pi.Value = "Mar" Then pi.Visible = True
    If pi.Value = "Apr" Then pi.Visible = True
    If pi.Value = "May" Then pi.Visible = True
    If pi.Value = "Jun" Then pi.Visible = True
    If pi.Value = "Jul" Then pi.Visible = True
    If pi.Value = "Aug" Then pi.Visible = True
    If pi.Value = "Sep" Then pi.Visible = True
    If pi.Value = "Oct" Then pi.Visible = True
    If pi.Value = "Nov" Then pi.Visible = True
    If pi.Value = "Dec" Then pi.Visible = True
Next

Application.ScreenUpdating = True   end sub

我尝试了其他方法,但没有一个方法有效,这让我最成功,因为我可以隐藏或显示月份字段,但是一旦我试图隐藏其他字段,就会出错。

在我的图片中,我有0个值,在我的数据中,我有几个月没有数据。这些需要出现在此图表中,这就是它显示零值的原因,因此我无法隐藏没有数据的行。

VBA上正在进行排序,将所有内容整理好,所以我想要的两条线总是第13行和第13行。 14。

非常感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:1)

截止日期是多年吗?如果是这样,你的转轴是错误的,因为你只显示月份,而第1年的2月将被添加到第2年的2月和第3年的2月......

但是,在数据透视表的日期列中,空白低于最小给定日期=空白= 0 = 1900-01-00。然后有一个项目大于最大给定日期。两个日期都是可变的。但以下情况应该有效:

Set pt = ActiveSheet.PivotTables("PivotTable1")
Set pf = pt.PivotFields("Due Date")

For Each pit In pf.PivotItems
 pit.Visible = True
 If Left(pit.Name, 1) = "<" Then 'lower than the minimal given date = blank = 0 = 1900-01-00
  pit.Visible = False '
 End If
 If Left(pit.Name, 1) = ">" Then 'greater than the maximal given date
  pit.Visible = False '
 End If
Next

答案 1 :(得分:0)

如果你完全确定它会一直是第13和第14行,你会尝试这样的吗?

Pi.Visible = True
If Pi.Position > 12 Then
 Pi.Visible = False
End If
在你的for循环中

相关问题