我试过在这个网站上找到答案,我没有运气,所以希望有人可以帮助我。我无法提供示例表,因为数据是私有的,但我会附上一个屏幕截图。
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。
非常感谢任何帮助,谢谢
答案 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循环中。