VBA-Code für return pivot-Tabelle, Zelle, Zeile, Spalte, Seite und die Felder und Elemente

Ich versuche, code zu schreiben, wird wieder die Zeilen -, Spalten-und Seitenfelder und Gegenstände nach, die ich hervorgehoben haben, dass eine Zelle in der Werte-Bereich der pivot-Tabelle. Zum Beispiel, wenn ich wählen Sie eine Zelle mit einem Wert von $1000, ich würde gerne den code ziehen Sie die Zeile Feld und Element (zum Beispiel würde das Feld Abteilung und Position wäre die Finanzen), Spalte, Feld und Element (zum Beispiel würde das Feld Konto und posten wäre Werbung) und die Seite, Bereich und Element (zum Beispiel würde das Feld Firma und Position wäre XYZ, Inc.).

Dieser scheint, wie es sollte ziemlich einfach sein, weil, wenn Sie mit dem Mauszeiger auf eine beliebige Zelle in einer pivot-Tabelle, wird es zeigen Ihnen die drilldown-Informationen in der contextures box, aber ich habe eine harte Zeit Bearbeiten der pivot-Tabelle-Objekte, weil es nicht zu sein scheinen viel über Sie geschrieben online oder von microsoft.

Scheint es, wie die pivotline oder pivotlines Objekt könnte das sein, was ich Suche, aber ich kann nicht herausfinden, wie es zu benutzen.

Ich ursprünglich nahm dieses Konzept und es funktionierte gut, bis ich erkannte, dass ein rowfields' index nicht notwendigerweise die position in der Zeile Feld, ich musste also Schrott.

Sub ActualDetailDrill()
'after sub is completed, make this sub called when a cell in a pivot table is double-clicked.

Dim NumOfRowItems As Integer
Dim NumOfColItems As Integer
Dim NumOfPageFields As Integer
Dim Field As PivotField
Dim ActualDrillActiveCell As Range

Set ActualDrillActiveCell = Sheets("ActualDrill SQL Build").Range("A1")
NumOfRowItems = ActiveCell.PivotCell.RowItems.Count
i = 1

Do Until i > NumOfRowItems
    ActualDrillActiveCell.Value = ActiveCell.PivotTable.RowFields(i).Name
    ActualDrillActiveCell.Offset(0, 1).Value =    ActiveCell.PivotCell.RowItems(i).Name
    ActualDrillActiveCell = ActualDrillActiveCell.Offset(1, 0)
    i = i + 1
Loop

End Sub

Jede Hilfe wäre sehr geschätzt. Dies ist einer der letzten Schritte in einem großen Projekt an dem ich arbeite, wird sehr hilfreich sein, um die Firma für die ich arbeite.

Hier must-read post für diese Art von code: peltiertech.com/referencing-pivot-table-ranges-in-vba
Danke, Doug. Dies ist sehr hilfreich, aber ich versuche das Gegenteil von dem, was gesprochen wird in diesem link. Der Artikel setzt Voraus, Sie wissen, die Feld-und Elemente-Namen, die Sie möchten, ziehen Sie die Daten zurück. Ich weiß schon, die Daten-Bereich (eine Zelle statt, in die mehrere Zellen) und das Feld (Spalte, Zeile und Seite) und Gegenstände für den Datenbereich. Würde der Autor, Jon, ein guter Mensch zu sein, danach zu Fragen, da er scheint vertraut mit dem code für pivot-Tabellen? Danke!

InformationsquelleAutor jones-chris | 2016-01-15

Schreibe einen Kommentar