Excel VBA Parameter an eine Prozedur übergeben, deren Reihenfolge ändern?

3 Antworten

Aktuell wird weitergegeben a -> x und b -> y

Schreibst du zahlen b,a wird b -> x und a -> y weitergegeben.

________________

Es gibt aber Beispiele wann das nicht geht! Aktuell empfängt zahlen je zwei Werte vom Typ Integer.

Angenommen das würde so aussehen:

zahlen(ByRef x As Integer, ByRef y As String)

und es würde in der Main stehen

zahlen 4, "textausdruck"

Dann geht das.

Es geht aber nicht:

zahlen "textausdruck" ,4

Hier darf nicht getauscht werden.

Du hast es ja schon so gemacht wie im Lehrbuch. Die andere Variante wäre, dass du beim Aufrufen der Funktion die Parameter vertauscht:

Dim a As Integer, b As Integer
a = 2
b = 3
zahlen b, a
MsgBox a & vbTab & b

Am säubersten ist der Code aber, wenn du wie im Lehrbuch erwähnt die Reihenfolge wie in der Deklaration verwendest. Dann musst du halt schon bei der Deklaration die Werte tauschen:

Dim a As Integer, b As Integer
a = 3
b = 2
zahlen a, b
MsgBox a & vbTab & b
Woher ich das weiß:eigene Erfahrung

naja, du kannst die funktion auch einfach so aufrufen

zahlen b, a

ansonsten geht das auch so

zahlen y:=a, x:=b