Hallo liebe Leute,
ohne jetzt groß zu schauen, ob es ein ähnliches Thema gibt, möchte ich euch folgende Frage stellen:
Ich habe eine Prozedur, die eine Funktion aufruft, diese Funktion gibt mir einen berechneten Wert zurück und dieser Wert wird dann ausgegeben; über die Sinnfälligkeit brauchen wir uns nicht zu unterhalten, ich bin VBA-Neuling und fange im Moment erst mit VBA an :)
Function Addition(zahl1 As Integer, zahl2 As Integer) As Integer
Addition = zahl1 * zahl2
End Function
'---------------------------
Sub Main()
Dim x, y, ergebnis As Integer
x = 12
y = 10
ergebnis = Addition(x, y)
Debug.Print (ergebnis)
End Sub
Wenn ich die Prozedur Main() ausführe, bekomme ich die Meldung: "Fehler beim Kompilieren, Argumenttyp ByRef unverträglich"
Nun weiß ich, dass, schreibt man nichts vor die Übergabewerte der Funktion, die Variable ByRef übernommen wird. Diese Fehlermeldung zielt aber auf den
Datentyp der Variablen ab. Da ich aber x und y als Integer deklariert habe und sie dann auch so übergebe und die Funktion auch einen Integer erwartet, weiß ich nicht, warum der Compiler damit ein Problem hat.
Ersetze ich die Zeile ergebnis = Addition(x, y) durch ergebnis = Addition((x),(y)) (Klammerung der Übergabeparameter) dann funktionierts. Kann mir jemand erklären, was der Fehler ist und was programmtechnisch / compilertechnisch bei der Klammerung passiert, obwohl doch Übergabe- und Erwartungswert der Funktion gleich sind?
Beste Grüße, Holger
|