Registriert seit: 30.01.2016
Version(en): 2010
Hallo Leute,
beschäftige mich gerade mit VBA und komme hier nicht weiter. Wie muß ich meinen Code verändern bzw. ergänzen damit mir die Funktion F als Rückgabewert den Gesamtnamen liefert und bei Debug.print im Hauptprogramm Main als Name "Sabine Maier" herauskommt? Bitte helft einem Ahnungslosen.
Code:
Function F(ByVal Nachname As String) As String
Dim Vorname As String
Vorname = "Sabine"
End Function
Sub Main()
Dim Nachname As String
Dim Name As String
Nachname = "Maier"
'Funktionsaufruf
Name = F(Nachname)
'Ergebnisüberprüfung
Debug.Print Name
End Sub
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
[ungeprüft] füge als letzte Zeile vor end sub ein:
F = vorname
Mfg
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hallo!
z.B. so:
Sub Aufruf()
Debug.Print F("Maier", "Sabine")
End Sub
Function F(Nachname As String, Vorname As String) As String
F = Vorname & " " & Nachname
End Function
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 30.01.2016
Version(en): 2010
Hallo Ralf,
danke für die schnelle Antwort. Mit Hilfe deines Codes habe ich das Ganze jetzt so gemach und es funktioniert:
Code:
Function F(ByVal Nachname As String) As String
Dim Vorname As String, Gesamt As String
Vorname = "Sabine"
Gesamt = Vorname & " " & Nachname
F = Gesamt
End Function
Sub Main()
Dim Nachname As String
Dim Name As String
Nachname = "Maier"
Name = F(Nachname)
Debug.Print Name
End Sub
Ich habe aber hier etwas Literatur vor mir liegen und möchte dich mal fragen, ob man hier "irgendwie" mal das Schlüsselwort Return einbauen kann, damit die Sache funktioniert. Als Anschauungsmaterial noch etwas alternativer Code.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hallo!
Zunächst solltest Du nicht so verschwenderisch mit Variablen umgehen.
Wenn Du mal längere Codes schreibst, wird das Ganze schnell unübersichtlich.
(ist aber meine ureigene Meinung)
Zitat:möchte dich mal fragen, ob man hier "irgendwie" mal das Schlüsselwort Return einbauen kann, damit die Sache funktioniert.
Wie meinst Du das?
Makroaufruf geht per Alt+F8, Schaltfläche oder Shortcut.
(und bei Ereignismakros durch Eintreten des Ereignisses).
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 30.01.2016
Version(en): 2010
Hallo Ralf,
ich muss jetzt leider aus dem Haus. Werde das aber noch mal raussuchen aus meinen Unterlagen.
Vielen Dank schon mal für deine schnelle Hilfe.
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
30.01.2016, 17:22
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2016, 17:22 von GMG-CC.)
Ein "Return" in diesem Sinne gibt es so nicht. Die Zeile im obigen Code
ist dein "Return". Oder mit anderen Worten: In VBA wird der Rückgabewert einer Funktion immer durch Zuweisung an den Funktionsnamen erzeugt (hier fer Funktionsname
Rechnen):
Code:
Function Rechnen(Zahl1, Zahl2, WasTun)
Dim Rc As Single 'ReturnCode
Select Case WasTun
Case "Addition"
Rc = Zahl + Zahl2
Case "Subtraktion"
Rc = Zahl1 - Zahl2
Case "Multiplikation"
Rc = Zahl1 * Zahl2
Case "Division"
Rc = Zahl1 / Zahl2
Case Else
MsgBox "Das Argument " & WasTun & " ist fehlerhaft!"
End Select
Rechnen = Rc 'Hier ist "Dein" Return
End Function
Hier ist die Variable
Rc einfach einmal eingesetzt, weil sie in meinen Augen aussagekräftiger ist als der Name der Function.
Beste Grüße
Günther
Excel-ist-sexy.de …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!