Mam aktualnie ustawioną funkcję, która zmieni wszystkie wartości wybranej tabeli przestawnej na średnią.Ustawienie wartości .Function za pomocą VBA
Działa dobrze, a ja złożyłem formularz, który przekazuje wartość, która również działa dobrze.
To, co chciałbym teraz zrobić, to sprawić, żeby zdecydował, do kogo obrócić wartości.
Jednak nadal otrzymuję błąd Type-Mismatch
. Dzieje się tak, ponieważ jest on odczytywany jako ciąg znaków. Jak mogę to zmienić?
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
Próbowałem coś takiego w przeszłości i skończyło budowę tabelę z wartości wyliczenia ustawić typ obliczenia (naciśnij F2 i szukać 'XlConsolidationFunction') – R3uK
[Utwórz dwie kolumny w polu listy, ustaw tekst i kolumny wartości] (http://stackoverflow.com/a/11062291/11683), dodaj oba podpisy (np. '" Suma "') i wartość (np. 'XlSum') dla każdej pozycji, użyj' Wartość' wybranego elementu w 'CommandButton1_Click'. – GSerg