Function verlangt nach Param.erweit. Rückgabewert

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Function verlangt nach Param.erweit. Rückgabewert
von: Diethelm Kiesel
Geschrieben am: 17.05.2002 - 14:23:30

Nachdem ich eine Funktion um 2 Parameter erweitert habe, verlangt der Parser plötzlich eine Zuweisung der Function zu einer Variablen (Fehler beim Kompilieren: - Erwartet: = )
In der Funktion wurde allerdings keine Zuweisung zum Funktionsnamen gemacht.
Weise ich einer Dummy-Variablen der Funktion zu, gibt es keinen Fehler.
dummy = myFunction(Para1,Para2,Para3)
Hat einer eine Erklärung?
Vielen Danke für das Lesen und eine Antwort!
Gruß Diethelm Kiesel
Schöne Pfingsten!
nach oben   nach unten

Re: Function verlangt nach Param.erweit. Rückgabewert
von: Andreas
Geschrieben am: 17.05.2002 - 14:28:15

Hallo Diethelm,

rufe die Function/Sub ohne die Klammern auf!
Also etwa:
MySub Para1, Para2, Para3

Viel Spaß,
Andreas

nach oben   nach unten

Re: Function verlangt nach Param.erweit. Rückgabewert
von: Michael Scheffler
Geschrieben am: 17.05.2002 - 14:58:57

Hallo,

das ist Käse Andreas. Funktionen mit Rückgabwerten werden mit Klammern geschrieben. Wenn man bei Subs auf Klammern verzichtet, sollte man namentliche Argumente benutzen (wegen der Übersichtlichkeit):


Option Explicit
Function CalcLocation(doubLO As Double, doubISSY As Double, doubAct As Double) As Double
    CalcLocation = doubLO * (doubAct / doubISSY) ^ 4.1
End Function


Sub Test()
Dim doubRes As Double
doubRes = CalcLocation(1, 1, 1)
' oder
doubRes = CalcLocation(doubLO:=1, doubISSY:=1, doubAct:=1)

End Sub


nach oben   nach unten

Re: Function verlangt nach Param.erweit. Rückgabewert
von: Andreas
Geschrieben am: 17.05.2002 - 15:10:01

Hallo Michael,

ein kleiner Fehler, hätte nicht Function/Sub sondern nur Sub schreiben sollen. Ich habe da gedanklich nur an die Sub gedacht.
Function werden natürlich mit Klammern aufgerufen!

Also an so ein Beispiel hatte ich gedacht:


Private Sub TextAusgabe(strParam1$, strParam2$)
MsgBox strParam1, , strParam2
End Sub

Sub Start()
TextAusgabe "Hallo", "Mein Text"
'TextAusgabe ("Hallo", "Mein Text")
End Sub


Dort erkennt man den Unterschied den ich meinte! (Eigentlich ist die MsgBox ja auch ein schönes Beispiel für sich...)
Sollte mich wohl nächstes mal klarer ausdrücken :-)

Vielen Dank für Deine Richtigstellung!
Andreas

nach oben   nach unten

Re: Function verlangt nach Param.erweit. Rückgabewert
von: Andreas
Geschrieben am: 17.05.2002 - 16:06:06

Hallo Diethelm, hallo Michael,

das ganze hat mich dann doch etwas verwirrt und nachdem ich nochmal die Frage von Diethelm gelesen habe, nun nochmal ein Beispiel. Also Diethelm wundert sich warum bei Ergänzen von 2 weiteren Parametern in eine Function (die KEINEN Wert zugewiesen bekommt), plötzlich die Übergabe an eine Variable erforderlich ist. Und ich sagte daraufhin, lass die Klammern weg und dieses Beispiel zeigt das auch noch mal:

Function Par0() '0 Parameter
Application.StatusBar = False
End Function

Function Par1(p1%) '1 Parameter
Application.StatusBar = p1
End Function

Function Par2(p1%, p2%) '2 Parameter
Application.StatusBar = p1 + p2
End Function

Function Par3(p1%, p2%, p3%) As Integer '3 Parameter
Par3 = p1 + p2 + p3
Application.StatusBar = Par3
End Function

Sub Start()
Par1 (1)
Par1 1
Par2 (1,2) 'Fehler
Par2 1, 2 'KEIN Fehler
Par3 (1,2,3) 'Fehler
Par3 1, 2, 3 'KEIN Fehler
Par0
End Sub

Viel Spaß und schöne Pfingsten!
Andreas

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "2 zeilig innerhalb einer zelle"