Ich habe mit normalen PivotTables in VBA gearbeitet, aber kürzlich habe ich einige Funktionen in den Pivot-Tabellen gefunden, die das Datenmodell verwenden, das ich wirklich mag - hauptsächlich "Distinct Count". Ich habe etwas Code in einer normalen Pivot-Tabelle, die die Tabelle für Datensätze "Like" eine Zeichenfolge filtert, und es funktioniert einwandfrei. Wie kann ich diesen Code mithilfe des Datenmodells in die Pivot-Tabelle konvertieren?Wie durchläuft ich die Filterelemente und blendet Elemente in einer Excel-PivotTable mithilfe des Datenmodells aus?
With ActiveSheet.PivotTables("Metrics").PivotFields("Reference number")
.Orientation = xlPageField
.Position = 1
.EnableMultiplePageItems = True
For i = 1 To .PivotItems.Count
If .PivotItems(i).Name Like "*oran*" Then
.PivotItems(i).Visible = False
End If
Next i
End With
Hier ist der Code, der erstellt wird, wenn ich ein Makro aufzeichnen und wählen Sie die Elemente manuell unter dem Datenmodell anzuzeigen:
ActiveSheet.PivotTables("Metrics").PivotFields("[RawData].[Status].[Status]"). _
VisibleItemsList = Array("[RawData].[Status].&[apple_434]", _
"[RawData].[Status].&[banana_689]", _
"[RawData].[Status].&[orange_1346]", _
"[RawData].[Status].&[orange_1454]")
Dies ist die Richtung, die ich in Richtung bin, aber ich habe einige Mühe, den VisibleItemsList Array zugreifen:
With ActiveSheet.PivotTables("Metrics").PivotFields("[RawData].[Status].[Status]")
For i = 0 To UBound(.VisibleItemsList)
If i Like "*oran*" Then
i = ""
Debug.Print i
End If
Next i
End With
der Ausgang i numerisch 0,1,2,3,4 --not Text und die Zahlen scheinen nicht auf die Anzahl der Elemente in den Filter lis entsprechen t. Ich kann nicht herausfinden, wie ich auf die Objekte zugreifen soll, damit ich die Codes anzeigen oder ausblenden kann, die ich verwenden möchte. Ich werde ehrlich sein, dass ich nicht sehr lange mit Arrays gearbeitet habe.
Muss es VBA sein? Können Sie dieses kostenlose Add-In installieren und die Filterlistenfunktion nutzen, um dies für Sie zu tun? http://olappivottableextend.codeplex.com/wikipage?title=Filter%20List&referringTitle=Home – GregGalloway
Ich hatte jemanden auf eine ähnliche Anfrage als Antwort auf einige nicht-OLAP-Filter-Code, die ich auf http: // dailydoseofexel veröffentlicht hatte .com/archives/2013/11/14/filtering-pivots-based-on-external-bereiche/ Es hat lange gedauert und viele Hacks über VBA zu erreichen. Ich baue durch Code in ein kommerzielles Add-In, das auch komplexe Platzhalter und Ausschlüsse behandelt und auf eine Reihe von Suchbegriffen verweisen kann. Vorschau auf http://dailydoseofexcel.com/archives/2015/11/17/filtering-pivottables-with-vba-deselect-slicers-first/. Hinterlasse einen Kommentar, wenn du mehr wissen willst. – jeffreyweir
-GregGalloway, Es muss VBA sein und ich habe nicht die Flexibilität, ein Add-In zu installieren. Wenn ich das getan hätte, hätte dieser Link mein Problem gelöst. Danke für das Teilen. –