Ich weiß nicht, ob dies möglich ist, aber ich versuche, ein Makro, das alle Pivot-Felder in die Werte Abschnitt einer Pivot-Tabelle als entweder fügt Zahlen oder Prozentsätze.Excel VBA Überprüfen Sie, ob Pivot-Feld sollte als eine Zahl oder einen Prozentsatz formatiert werden
Hier ist, was ich bisher:
If MsgBox("Do you want to add all pivot table fields as values?", vbOKCancel + vbQuestion, "Accept/Reject") = vbCancel Then
Exit Sub
End If
Dim pt As PivotTable
Dim pf As PivotField
Dim pivotTableName As String
On Error Resume Next
Set pt = ActiveCell.PivotTable
If pt Is Nothing Then
pivotTableName = InputBox("Enter the pivot table name.")
Set pt = ActiveSheet.PivotTables(pivotTableName)
End If
For Each pf In pt.PivotFields
pt.AddDataField pt.PivotFields(pf.Name), pf.Name & " ", xlSum
pt.PivotFields(pf.Name & " ").NumberFormat = "#,##0"
Next pf
Aber nächstes würde Ich mag ein hinzufügen, wenn Aussage, um zu sehen, ob das Feld als Prozentsatz stattdessen formatiert werden soll. Meine Ideen waren:
prüfen ein einzelner Datensatz Wert in einem Feld, um zu sehen, wenn es weniger als 100% (oder 1)
(dies würde in 95% der Situationen, die ich bin in ideal sein)
überprüfen sie, ob die Summe eines Feldes geringer ist als eine beliebige Anzahl wie < 100 (nicht perfekt)
überprüfen sie, ob der Name des Feldes% in ihm hat (was ich werde wahrscheinlich mit gehen)
Für jedes Feld i n pt.PivotFields
Wenn InStr (fld.Value, "%") Dann
Weiter
Überprüfen Sie, ob das Feld ein berechnetes Feld ist (nicht perfekt)
For Each fld in pt.PivotFields
Wenn fld.IsCalculated Dann
Weiter
Sind die ersten beiden möglich? Hat jemand bessere Ideen?
Danke!
P.S. Eine andere Sache, die ich interessiert war, ist zu überprüfen, ob das Feld Text enthält oder ob das Feld nicht summiert werden kann.
, bis jemand eine bessere Antwort gibt, können Sie die Einzelteile Blick in Schleifen der PivotField https://msdn.microsoft.com/en-us/library/office/ff820762.aspx (vielleicht pivotTable1.ColumnFields (1) .ChildItems (1) .Value) – Slai
Danke dafür, ich denke, ich habe eine Idee, ich werde versuchen, das Feld summieren, wenn Fehler dann muss es Text nach dem Hinzufügen der su sein mmed-Feld an die Pivot-Tabelle überprüfen Sie ihren Wert dann formatieren Sie es. –
Sum ignoriert Textwerte, aber möglicherweise finden Sie andere Funktionen, die nicht funktionieren. Ich dachte daran, die PivotField-Werte nacheinander durchzugehen, um sie zu überprüfen und zu summieren – Slai