[VBA] "Listen" von Parametern

25/03/2009 - 17:04 von qdl | Report spam
Ich möchte gerne in VBA eine Funktion so implementieren, dass ich dieser
eine Liste von Parametern in etwa in der Form =MeineFunction(A1:A15)
oder =MeineAndereFunktion(A1:A12;B1:B12) beim Aufruf aus einer Tabelle
übergeben kann. So wie das zum Beispiel mit der eingebauten Funktion
SUMME() geht.

Wie muss ich die Funktion dann in VBA deklarieren? Ich möchte dann die
Parameter z.B. in einer Schleife durchlaufen.

Danke.

hs
 

Lesen sie die antworten

#1 Bernhard Sander
25/03/2009 - 18:34 | Warnen spam
Hallo Holger,

Ich möchte gerne in VBA eine Funktion so implementieren, dass ich dieser
eine Liste von Parametern in etwa in der Form =MeineFunction(A1:A15)
oder =MeineAndereFunktion(A1:A12;B1:B12) beim Aufruf aus einer Tabelle
übergeben kann. So wie das zum Beispiel mit der eingebauten Funktion
SUMME() geht.

Wie muss ich die Funktion dann in VBA deklarieren? Ich möchte dann die
Parameter z.B. in einer Schleife durchlaufen.


Da gibt es 2 Möglichkeiten, lies in der VBA-Hilfe mal die Ausführungen zum
Schlüsselwort Optional bzw. ParamArray bei der Erlàuterung der SUB- bzw.
FUNCTION-Anweisung.

Mit OPTIONAL kannst Du eine feste Anzahl von optionalen Parametern angeben. Im
Makro kannst Du dann mit Hilfe der Funktion IsMissing(ParamX) feststellen, ob
der Parameter ParamX beim Aufruf mitgeliefert wurde oder nicht.
Für Deinen Fall oben z.B.:
FUNCTION MeineAndereFunktion(Optional Param1, Optional Param2)
If Not IsMissing(Param1) Then
' Parameter 1 ist angegeben
End If
If Not IsMissing(Param2) Then
' Parameter 2 ist angegeben
End If
End Function
Wie man solche Parameter in einer Schleife abklappern kann, wüsste ich jetzt
nicht, mir scheint, das geht so nicht.

Mit einem ParamArray habe ich noch nicht gearbeitet. Da sieht es m.E. so aus,
dass man im Aufruf beliebig viele Angaben mitliefern kann und die mitgelieferten
Angaben auch in einer Schleife abrufen kann.

Gruß
Bernhard Sander

Ähnliche fragen