Ich habe derzeit eine Funktion eingerichtet, die alle Werte einer ausgewählten Pivot-Tabelle als Durchschnittswert ändert.
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 so entscheidet, auf was es die Werte richtet.
Ich bekomme jedoch immer einen Type-Mismatch
Fehler. Dies liegt daran, dass es als String gelesen wird. Wie könnte ich das anpassen?
Natürlich wird der Name einer Variablen zur Kompilierzeit, wie zum Beispiel xlAverage
, nicht notwendigerweise der Laufzeit zugeordnet, wo sie einfach eine ganze Zahl ist. Nach der Kompilierung sind die Namen der Konstanten verschwunden.
Es gibt viele Möglichkeiten, aber sie könnten von der komplizierten Verwendung von Typ-Bibliotheken ausgehen, die außerdem nicht auf allen Plattformen verfügbar sind, zu der relativ einfachen Lösung I vorschlagen unten, die ein Wörterbuch verwendet, um die Zuordnungen zwischen den Namen der Konstanten und ihren Werten zu verfolgen.
%Vor% Übrigens müssen Sie bei dieser Methode nicht dieselben Namen wie die Variablen abbilden. Sie können alle Namen frei benennen, die Sie im Listenfeld anzeigen möchten. d.h. "Mimimum", "Standard Deviation", etc..
p.s.
Bitte beachten Sie, dass Sie einige Tippfehler in den Namen hatten:
CountNumbers
- & gt; CountNums
StdDev
- & gt; StDev
StdDevp
- & gt; StDevP
Ihr Versuch funktioniert nicht, weil Sie die konstanten Werte übergeben müssen, keine Zeichenfolgen. xlSum zum Beispiel ist -4157. Sie können herausfinden, was jeder ist wie folgt:
%Vor%Dies sollte für Sie funktionieren:
%Vor%Sie könnten eine Funktion erstellen, um den Wert der Namen zurückzugeben, wie:
%Vor%Die Änderungszuweisung:
%Vor%Tags und Links vba excel excel-vba pivot-table