2016-04-17 21 views
1

Sehr geehrte Stackoverflow Benutzer,EXCEL 2013 VBA Filterproblem

Ich habe Schwierigkeiten mit etwas, das einfach genug scheint, um nicht so viel Ärger zu verursachen. Ich versuche, eine Pivot-Tabelle basierend auf den Kriterien größer als gleich zu filtern, die im folgenden Code erwähnt werden. Hier ist der Code:

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 

Aus irgendeinem Grund die letzte Zeile, wo ich den Filter tatsächlich anwenden hält dass sie mir die folgende Fehlermeldung:

Laufzeitfehler ‚5‘: ungültiger Prozedur-Aufruf oder Argument

Bitte helfen.

Dank

Antwort

0

Ich gehe davon aus, dass Ihre Pivot-Tabelle erlaubt keine solche Filter angewendet werden. Es gibt viele verschiedene Arten/Arten von Pivot-Tabellen und nicht alle von ihnen erlauben solche Filter wie xlValueIsGreaterThanOrEqualTo.

Doch der folgende Code sollte unter allen Umständen arbeiten:

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