Ich habe derzeit eine Funktion eingerichtet, die alle Werte einer ausgewählten Pivot-Tabelle als Durchschnittswert ändert.Einstellung von .Function mit VBA
Es funktioniert gut, und ich habe ein Formular zusammengestellt, das einen Wert übergibt, der auch gut funktioniert.
Was ich an dieser Stelle tun möchte, ist, dass es entscheidet, worauf die Werte zu setzen sind.
Ich bekomme jedoch immer eine Type-Mismatch
Fehler. Dies liegt daran, dass es als String gelesen wird. Wie könnte ich das anpassen?
Private Sub CommandButton1_Click()
MsgBox xl & ListBox1.Value
Dim ptf As Excel.PivotField
With Selection.PivotTable
.ManualUpdate = True
For Each ptf In .DataFields
With ptf
.Function = "xl" & ListBox1.Value 'xlAverage works here
.NumberFormat = "#,##0"
End With
Next ptf
.ManualUpdate = False
End With
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize() 'Set Values Upon Opening
With ListBox1
.AddItem "Sum"
.AddItem "Count"
.AddItem "Average"
.AddItem "Max"
.AddItem "Min"
.AddItem "Product"
.AddItem "CountNumbers"
.AddItem "StdDev"
.AddItem "StdDevp"
.AddItem "Var"
.AddItem "Varp"
End With
End Sub
Ich habe so etwas wie dies in der Vergangenheit versucht und ich am Ende eine Tabelle mit dem Wert der Aufzählung Aufbau die Art der Berechnung (F2 drücken einzustellen und der Suche nach 'XlConsolidationFunction') – R3uK
[Erstellen Sie zwei Spalten in der Listbox, richten Sie Text- und Wertespalten ein] (http://stackoverflow.com/a/11062291/11683), fügen Sie beide Titel hinzu (z. B. '" Sum "') und Wert (z. B. 'xlSum') für jedes Element, verwenden Sie" Value "des ausgewählten Elements in' CommandButton1_Click'. – GSerg