亲爱的Stackoverflow用户,
我遇到一些似乎很简单但不会造成这么多麻烦的事情。我试图基于大于等于下面的代码中提到的标准来过滤数据透视表。这是代码:
Sub KEEP_ON_FILE_DT_CLICK()
Dim caches As Excel.SlicerCaches
Set cache = ActiveWorkbook.SlicerCaches("Slicer_KEEP_ON_FILE_DT")
With cache
For i = 1 To .SlicerItems.Count
If .SlicerItems(i).Selected Then
SelectedItem = .SlicerItems(i).Value
Exit For
End If
Next i
End With
ActiveSheet.PivotTables("PivotTable2").PivotFields("KEEP_ON_FILE_DT"). _
ClearAllFilters
ActiveSheet.PivotTables("PivotTable2").PivotFields("KEEP_ON_FILE_DT"). _
PivotFilters.Add Type:=xlValueIsGreaterThanOrEqualTo, Value1:=SelectedItem
End Sub
由于某种原因,我实际应用过滤器的最后一行不断给出以下错误消息:
运行时错误' 5': 无效的过程调用或参数
请帮忙。
由于
答案 0 :(得分:0)
我假设您的数据透视表不允许应用任何此类过滤器。枢轴表有许多不同的方式/类型,并不是所有这些都允许使用xlValueIsGreaterThanOrEqualTo
这样的过滤器。
然而,以下代码应该适用于所有情况:
Dim itmList As PivotItem
Dim dblDesiredValue as Long
dblDesiredValue = 32
ActiveSheet.PivotTables("PivotTable2").PivotFields("KEEP_ON_FILE_DT").EnableMultiplePageItems = True
For Each itmList In ActiveSheet.PivotTables("PivotTable2").PivotFields("KEEP_ON_FILE_DT").PivotItems
Select Case CDbl(itmList.Name)
Case Is >= dblDesiredValue
itmList.Visible = True
Case Else
itmList.Visible = False
End Select
Next itmList