vba范围的值枢轴

时间:2018-06-17 18:39:08

标签: excel vba

我有一个数据透视表,其值按月和日来过滤。我设法创建一个vba代码,根据4个变量器+年,月,日1或第2天进行过滤。

现在的问题是我想过滤一段天。假设我想要年份= 2018年,月份= 6月份,第1天= 10天,第2天= 15年。使用当前代码,枢轴将在10月6日至2018年和15日至2018年之间进行过滤。 相反,我想过滤它:从2010年6月10日到2018年6月15日

任何帮助?

    Sub PivotLast2D()

Application.ScreenUpdating = False
Sheets("Type10D").Visible = True
Sheets("Type10D").Select
Dim day1 As String
Dim day2 As String
Dim pi As PivotItem
Dim y As String
Dim z As String
day1 = Sheet6.Range("G16").Value
day2 = Sheet6.Range("G18").Value
y = Sheet6.Range("F14").Value
z = Sheet6.Range("F16").Value

Sheets("Type10D").Select

ActiveSheet.PivotTables("PivotTable2").ClearAllFilters

For Each pi In ActiveSheet.PivotTables("PivotTable2").PivotFields("Years").PivotItems
    pi.Visible = (pi.Name = y)
Next

For Each pi In ActiveSheet.PivotTables("PivotTable2").PivotFields("Month").PivotItems
    pi.Visible = (pi.Name = z)
Next

For Each pi In ActiveSheet.PivotTables("PivotTable2").PivotFields("Day").PivotItems
    pi.Visible = (pi.Name = day1 Or pi.Name = day2)
Next
Sheets("Type10D").Visible = False
Worksheets("Statistics").Activate
Application.ScreenUpdating = True


End Sub

我尝试将行更改为:

For i = day1 To day2
For Each pi In ActiveSheet.PivotTables("PivotTable2").PivotFields("Day").PivotItems
    j = i
    pi.Visible = (pi.Name = j)
Next pi
Next i

但它给了我错误。 有趣的是,如果我在j = i中键入数字,例如j = 12,则代码可以正常工作。但是,如果我把i而不是数字,代码给出错误“无法设置pivotitem类的可见属性”

0 个答案:

没有答案