Excel VBA Parameter an eine Prozedur übergeben, deren Reihenfolge ändern?
In der Prozedur test wird die Prozedur zahlen aufgerufen. Es werden werden die Werte der Variablen a = 2 und b = 3 als Parameter an die Prozedur zahlen übergeben. a wird nun für x verwendet und b für y.
Gibt es eine Möglichkeit die Reihenfolge der Parameterübergabe zu vertauschen?
D. h a = 2 soll nicht x zugeordnet werden sondern y und b = 3 soll nicht y sondern x zugeordnet werden. Natürlich könnte man jetzt bei der Deklaration von
Sub zahlen(Byref y as integer, Byref x as Integer)
schreiben. So würde a = 2 dann y zugeordent werden und b = 3 dann x.
Gibt es eine andere Möglichkeit die Reihenfolge der Parameter bei der Übergabe zu vertauschen. Laut Lehrbuch:
► Kann mir dies jemand an meinem Bsp. erläutern, wie man dies macht?
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
naja, du kannst die funktion auch einfach so aufrufen
zahlen b, a
ansonsten geht das auch so
zahlen y:=a, x:=b
Der Parameter y ist durch die Variable a definiert?
Danke schön!