Funktion mit mehreren ByRefs aufrufen
Hallo, ich habe eine Funktion in meinem Excel-Macro und möchte diese aufrufen um mir mehrere Werte zurückzugeben.
Das genau das nicht so geht, hab ich schon gelesen und darum mit ByRef hantiert.
hier mal, wie das eingebunden wurde von mir, nur beispielhaft, da wird in Wirklichkeit richtig viel gerechnet:
Ich würde mich freuen, wenn mir jemand weiter helfen kann.
Mfg tommy
Das genau das nicht so geht, hab ich schon gelesen und darum mit ByRef hantiert.
hier mal, wie das eingebunden wurde von mir, nur beispielhaft, da wird in Wirklichkeit richtig viel gerechnet:
Function GetProvision( _
ByVal intA_n As Integer, ByVal intB_n As Integer, ByVal strC_n As String, _
ByVal strD_n As String, ByVal boolE_n As Boolean, ByVal boolF_n As Boolean, _
ByRef dblG_n As Double, ByRef dblH_n As Double, ByRef strJ_n As String)
dblG_n = 0.01
dblH_n = 0.02
strJ_n = "3"
End Function
Private Sub bttnMe_Click()
Dim intA As Integer
Dim intB As Integer
Dim strC As String
Dim strD As String
Dim boolE As Boolean
Dim boolF As Boolean
Dim dblG As Double
Dim dblH As Double
Dim strJ As String
GetProvision(intA, intB, strC, strD, boolE, boolF, dblG, dblH, strJ)
' genau das geht nicht, aber warum?
' da wird ein = verlangt, ich will doch aber durch die Funktion
' die Werte ändern lassen
End Sub
Ich würde mich freuen, wenn mir jemand weiter helfen kann.
Mfg tommy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130902
Url: https://administrator.de/contentid/130902
Ausgedruckt am: 23.11.2024 um 11:11 Uhr
2 Kommentare
Neuester Kommentar
In der Hilfe mal den Unterschied zwischen einer Sub und einer Function nachlesen.
Aus der Hilfe:
Verwenden von Klammern beim Aufruf von Function-Prozeduren
Damit Sie den Rückgabewert einer Funktion verwenden können, weisen Sie die Funktion einer Variablen zu, und schließen Sie die Argumente in Klammern ein. Beispiel:
Antwort3 = MsgBox("Sind Sie mit Ihrem Gehalt zufrieden?", 4, "Frage 3")
Wenn der Rückgabewert einer Funktion für Sie bedeutungslos ist, können Sie eine Funktion auf die gleiche Weise aufrufen, wie Sie eine Sub-Prozedur aufrufen. Lassen Sie die Klammern weg, listen Sie die Argumente auf, und weisen Sie die Funktion keiner Variablen zu. Beispiel:
MsgBox "Aufgabe erledigt!", 0, "Aufgabe-Dialogfeld"
Vorsicht Wenn Sie im vorhergehenden Beispiel Klammern angeben, verursacht die Anweisung einen Syntax-Fehler.
Also einfach:
Und sich überlegen, ob man nicht eine Sub statt einer Function haben will.
Aus der Hilfe:
Verwenden von Klammern beim Aufruf von Function-Prozeduren
Damit Sie den Rückgabewert einer Funktion verwenden können, weisen Sie die Funktion einer Variablen zu, und schließen Sie die Argumente in Klammern ein. Beispiel:
Antwort3 = MsgBox("Sind Sie mit Ihrem Gehalt zufrieden?", 4, "Frage 3")
Wenn der Rückgabewert einer Funktion für Sie bedeutungslos ist, können Sie eine Funktion auf die gleiche Weise aufrufen, wie Sie eine Sub-Prozedur aufrufen. Lassen Sie die Klammern weg, listen Sie die Argumente auf, und weisen Sie die Funktion keiner Variablen zu. Beispiel:
MsgBox "Aufgabe erledigt!", 0, "Aufgabe-Dialogfeld"
Vorsicht Wenn Sie im vorhergehenden Beispiel Klammern angeben, verursacht die Anweisung einen Syntax-Fehler.
Also einfach:
GetProvision intA, intB, strC, strD, boolE, boolF, dblG, dblH, strJ