/ / Excel VBA: Verschiebt die Zeile unabhängig von der Anzahl der Zeilen in der Pivot-Tabelle an ein Ziel - Excel, VBA, Excel-VBA

Excel-VBA: Verschieben Sie die Zeile unabhängig von der Zeilenanzahl in der Pivot-Tabelle an ein Ziel - Excel, VBA, Excel-Vba

Ich bin neu in VBA und habe sehr Grundkenntnisse. Ich habe eine Pivot-Tabelle, die die Anzahl der Schüler nach Einschreibedatum gruppiert berechnet und aus Spalten besteht Brand Ids Ich möchte eine Reihe an das Ende des Pivots verschiebenTabelle und die Anzahl der Zeilen ändert sich ständig. Ich habe versucht, den folgenden Code zu verwenden, aber ich kann ihn nur verwenden, wenn die Anzahl der Zeilen in der Pivot-Tabelle konstant ist. Kann mir bitte jemand helfen, die Zeile an das Ende der Tabelle zu verschieben, obwohl die Anzahl der Zeilen nicht konstant ist?

ActiveSheet.PivotTables("StudentCount").PivotSelect ""En_Date"["(blank)"]", _
xlDataAndLabel + xlFirstRow, True
ActiveSheet.PivotTables("StudentCount").PivotFields("En_Date").PivtoItems( _
"(blank)").Position = 20
"In current sheet I need to move to 20 but actually 20 is not       constant
ActiveSheet.PivotTables("StudentCOunt").PivotSelect "En_Date", xlButton, True

Ich habe auch den folgenden Code ausprobiert, aber er funktioniert nicht:

Dim LS as LONG
LS = ActiveSheet.PivotTable("StudentCount").TableRange2.Rows.Count

ActiveSheet.PivotTables("StudentCount").PivotSelect ""En_Date"["(blank)"]", _
xlDataAndLabel + xlFirstRow, True
ActiveSheet.PivotTables("StudentCount").PivotFields("En_Date").PivtoItems( _
"(blank)").Position = "& (LS - 1)"
ActiveSheet.PivotTables("StudentCOunt").PivotSelect "En_Date", xlButton, True

Pivot-Tabelle:

Anzahl der Studenten Datum A1 A2 A3 A4Leere Gesamtübersicht leer 69 86 23 45 223 01.01.2014 2 25 3 1 31 02/01/2014 1 2 5 8 16 Gesamtsumme 71 112 28 51 262

Antworten:

1 für die Antwort № 1

Hallo, um deine Frage zu beantworten, brauchst du nicht VBA um dies zu tun.
Der Grund, warum sich Ihr Pivot als solcher verhält, ist Ihr Dates sind eigentlich nicht Dates aber Dates Entered as Text.
Siehe unten neu erstellte Daten:

Bildbeschreibung hier eingeben

Geben Sie es erneut als aktuell ein dates wird dein Problem lösen.
Also nach dem Wechsel der Text Dates zu aktuell Dates, dein Pivot sortiert deine Reihe, wie du magst.
Siehe unten:

Bildbeschreibung hier eingeben

Hoffe, die Lösung, die ich vorgestellt habe, hilft Ihnen ein bisschen.

Zusätzlich: Wenn es jedoch nicht bequem ist, alle Daten erneut einzugeben, versuchen Sie es mit folgendem Code:

Dim i As Integer

With ActiveSheet.PivotTables("StudentCount").PivotFields("En Date")
For i = 1 To .PivotItems.Count
If .PivotItems(i) = "(blank)" Then .PivotItems(i).Position = .PivotItems.Count
Next
End With

Der obige Code durchläuft einfach alle PivotItems, schaut nach (blanks).
Es ändert dann seine Position in die letzte Position, die gleich ist .PivotItems.Count.
Hoffe das funktioniert für dich.