Ich schreibe einen VBA-Code in Excel 2016, der benutzerdefiniertes Pivot-Tabellenlayout in csv speichern und dann wieder laden würde, wenn sie es brauchen.Excel VBA 2016 Liste ausgewählter Elemente eines Seitenfilters in einen Arbeitsblattbereich
Meine Pivot-Tabelle ist ein PowerPivot eins.
"Markt" Feld hat viele Länder zur Auswahl. Es befindet sich im Seitenfilterbereich und wird gefiltert, um Frankreich und Spanien anzuzeigen.
Was ich erreichen muss: In einem Arbeitsblatt die Elemente auflisten, die ausgewählt werden sollen.
Hier ist der Code (einer von vielen habe ich versucht):
Sub test_3()
Set PT = ActiveSheet.PivotTables(1)
For Each PF In PT.PivotFields
If PF.Orientation = xlPageField Then
Debug.Print PF.Name
For i = 1 To PF.PivotItems.Count
If PF.PivotItems(i).Visible = True Then Debug.Print PF.PivotItems(i).Name
Next i
End If
Next PF
End Sub
OUTPUT I GET:
[Markets].[Market].[Market]
, die nur ein Würfel Bezug auf den Feldnamen ist.
Scheint wie PivotItems nicht mit PageField funktioniert.
Alle Beispiele, die ich bisher gesehen habe, verwenden diese Eigenschaft, aber sie sind ziemlich alt und verwenden wahrscheinlich nicht PowerPivot-Tabellen.
Kann jemand helfen?
Vielen Dank im Voraus
Können Sie bitte ändern Sie die Zeile Debug.Print PF.PivotItems (i) .Name zu Debug.Print PF.PivotItems (i) .Wert und sehen Sie das Ergebnis? –
@ J.B. Ich habe es versucht, es hat nicht funktioniert. PF.PivotItems.Count scheint immer Null zu sein, also ist es nie zu dieser Zeile gekommen. Was ich versuchte, ich fest von FROM i = 1 bis 5, um in die Schleife zu bekommen, und dann eine Fehlermeldung "Konnte PivotItems-Eigenschaft der PivotField-Klasse auf der IF-Bedingung Teil nicht erhalten. Irgendwelche Ideen? –