Herbers Excel-Forum - das Archiv

Rückgabewert bei Methoden/Funktionen

Bild

Betrifft: Rückgabewert bei Methoden/Funktionen
von: Firat Caparogullari

Geschrieben am: 15.03.2005 11:58:41
Hallo zusammen,
habe eine generelle Frage:
Wie sieht es aus wenn ich Funktionen oder Methoden vom Hauptprogramm abkapseln will und von diesen einen Rückgabewert erhalte!?
Ich kenn bisher nur Methoden, die keinen Rückgabewert haben (z. B. Sortieralgorithmus), dann sehe es in meinem Quellcode so aus:
Sub Hauptprogramm ()
Call Sortieren
End Sub

Sub Sortieren ()
End Sub

Wie sieht es denn aus wenn ich einen Rückgabewert habe? Gibt es eine return-funktion? Habe es eben mit folgender Darstellung probiert, hat aber nicht geklappt:
Sub Hauptprogramm ()
abc = Nebenprogramm(Wert) 'Übergebe dem Nebenprogramm einen Wert zum berechnen.
End Sub

Sub Nebenprogramm (wert)
End Sub

und was macht es für ein Unterschied, wenn ich
Sub oder 
Function nehme!?
DAnke...
Bild

Betrifft: AW: Rückgabewert bei Methoden/Funktionen
von: Bert
Geschrieben am: 15.03.2005 12:04:57
Die Function liefert einen Rückgabewert, die Sub nicht.
Bert
Bild

Betrifft: AW: Rückgabewert bei Methoden/Funktionen
von: Firat Caparogullari
Geschrieben am: 15.03.2005 12:06:49
und gibt es bei der funktion ein "return" oder sowas?!
wie kann ich denn vom Hauptprogramm auf den Rückgabewert zugreifen!?
abc = funktion() !? oder?
Bild

Betrifft: AW: Rückgabewert bei Methoden/Funktionen
von: Domke, Frank

Geschrieben am: 15.03.2005 12:08:06
Hallo Firat,
dafür gibt es Funktionen!
Function Summe(lngA as Long, lngB as Long) as long
Summe = lngA + lngB
End Function

Test:
lngC = Summe(13,14)
Der Wert wird zurückgegeben, indem er dem Funktionsnamen zugewiesen wird.
Viel Spaß
Frank.
Bild

Betrifft: AW: Rückgabewert bei Methoden/Funktionen
von: Bert
Geschrieben am: 15.03.2005 12:15:56
Aber besser keine Namen verwenden, die von Excel verwendet werden.
Bert
Bild

Betrifft: AW: Rückgabewert bei Methoden/Funktionen
von: Firat Caparogullari

Geschrieben am: 15.03.2005 13:31:49
Also, ich habe grad was versucht aber es klappt nicht ganz...
Sub Hauptprogramm ()
dim name as String
dim dateiname as String
name = Namefiltern(dateiname)
End Sub

Function Namefiltern (datei as String)
For Zaehler = Len(datei) To 1 Step -1 '
If Mid(datei, Zaehler, 1) = "\" Then
datei = Mid(datei, (Zaehler + 1), (Len(datei) - Zaehler))
Exit For
End If
Next Zaehler
End Function

Also es speichert nicht den Wert, den die Funktion übermittelt in "name". Ich kann erkennen, dass im Hauptprogramm der Rückgabewert (beim Debuggen) in dem Funktionsnamen steht.
Wo liegt der Fehler?
Bild

Betrifft: AW: Rückgabewert bei Methoden/Funktionen
von: Bert

Geschrieben am: 15.03.2005 14:28:58
Option Explicit
Function Namefiltern(datei As String)
For Zaehler = Len(datei) To 1 Step -1 '
If Mid(datei, Zaehler, 1) = "\" Then
Namefiltern = Mid(datei, (Zaehler + 1), (Len(datei) - Zaehler))
Exit For
End If
Next Zaehler
End Function

Gruß Bert
 Bild