我正在寻找在O2和O3中所述的2个日期之间筛选数据透视表的方法,似乎无法摆脱此错误。任何帮助将不胜感激。
Sub MyFilter()
Dim pvtfld As PivotField
Dim pvtfil As PivotFilter
Dim pvtfils As PivotFilters
Set pvtfld = ThisWorkbook.Sheets("Sheet1").PivotTables("PivotTable1").PivotFields("Date")
For Each pvtfil In pvtfld.PivotFilters
Next pvtfil
Set pvtfil = pvtfils.Add(xlDateBetween, Date, O2, O3, xlDescending)
End Sub
错误如下。
错误424所需的对象出现在设置的pvtfil行中。
答案 0 :(得分:0)
枢轴的日期过滤器需要两个String
,Excel可以将其解释为日期值(在我的德语Excel版本中,不能直接分配Date
值和Range
对象!)
因此,我使用了两个日期变量“ o2”和“ o3”
Range.Value
阅读CDate
转换为日期(如果您已经在单元格中使用了日期值,则没有必要)CStr
转换为字符串Sub MyFilter()
Dim pvtfld As PivotField
Dim pvtfil As PivotFilter
Dim o2 As Date
Dim o3 As Date
With ThisWorkbook.Sheets("Sheet1")
Set pvtfld = .PivotTables("PivotTable1").PivotFields("Date")
o2 = CDate(.Range("O2").Value) ' just to ensure, they are dates
o3 = CDate(.Range("O3").Value)
Debug.Print CStr(o2), CStr(o3)
pvtfld.ClearAllFilters
Set pvtfil = pvtfld.PivotFilters.Add2(Type:=xlDateBetween, Value1:=CStr(o2), Value2:=CStr(o3), Order:=xlDescending)
End With
End Sub