Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
632to636
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Parameter Übergabe

Parameter Übergabe
05.07.2005 20:48:07
Maxine
Hallo!
Habe ein paar Verständnisfragen und brauche eure Hilfe. Es geht um folgenden Code:

Sub Währungsumrechner()
Dim Eingabe As Single
Eingabe = InputBox("Bitte geben Sie einen Betrag in DM ein", "Währungsumrechner")
MsgBox ("Der Betrag " & Eingabe & " entspricht " & Euro(Eingabe) & " Euro.")
End Sub


Function Euro(DM As Single) As Single
Euro = DM / 1.95583
End Function

Was wird hier übergeben? "DM" an "Eingabe" oder umgekehrt? Müssen die Argumente immer alle mit demselben Typ deklariert werden (also wenn oben "Eingabe as Single", dann unten auch "DM as Single")? Muss die

Function an sich deklariert werden? (Wenn ja, ebenfalls mit demselben Typ wie die Argumente, so wie in diesem Beispiel?)
Und noch ganz allgemein: Woher weiß das Programm überhaupt, das hier die Parameter übergeben werden sollen? ;-)
Vielen Dank für die Antworten,
Maxine

		

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Parameter Übergabe
05.07.2005 20:58:13
Matthias
Hallo Maxine,
hier wird einfach das Argument (hier: Eingabe) an die Funktion übergeben. Dass sie in der Funktion "DM" heißt ist eigentlich egal.
Standardmäßig wird der Bezug auf das Argument übergeben, das kann man explizit auch so ausdrücken:

Function Euro(ByRef DM As Single) As Single

Im Gegensatz dazu gibt es noch ByVal. Ein Beispiel:

Function Euro(ByVal DM As Single) As Single
Euro = DM / 1.95583
DM = DM + 1
End Function
Sub test1()
Dim W1 As Single, e As Single
W1 = 10
e = Euro(W1)
MsgBox W1
End Sub

Wenn du jetzt test1 ausführst, bleibt W1 nach dem Aufruf 10.
Ersetzt du ByVal durch ByRef (oder nichts), erhöht die Funktion den Wert des Variablen um 1.
Das wars fürs erste.
Gruß Matthias
Anzeige
AW: Parameter Übergabe
05.07.2005 21:03:14
Nepumuk
Hi,
da du in der Funktion einen "nicht Optionalen" Parameter definiert hast, erwartet der Funktionsaufruf einen Parameter. Sonst bekommst du die Fehlermeldung:
Argument ist nicht Optional
Du übergibst "Eingabe" an die Variable "DM" und bekommst den Wert in der Funktionsvariablen "Euro" zurückgeliefert.
Gruß
Nepumuk
Die Spezialisten
AW: Parameter Übergabe
05.07.2005 21:07:57
Uduuh
Hallo,
die Funktion Euro(DM) erwartet eine Zahl des Typs Single, also einfache Genauigkeit. Aufgerufen wird diese in der Msgbox, nämlich bei Euro(Eingabe). Letztlich ist es egal, wie die Variable wann heißt, aber immer wenn Euro(Zahl) auftaucht, wird diese Funktion aufgerufen. Ist sie nicht vorhanden, gibt es einen Fehler. Ist der Parameter nicht da, gibt's auch einen Fehler.
Gruß aus’m Pott
Udo

Anzeige
AW: Parameter Übergabe
05.07.2005 22:19:45
Maxine
Und wieso funktioniert das folgende Beispiel, auch wenn ich nach Prog2 kein Argument habe?
Dim Name As String

Sub Prog1()
Name = InputBox ("Geben Sie Ihren Namen ein:")
Prog2
End Sub


Sub Prog2()
MsgBox Name
End Sub

Ich hätte das ja so geschrieben:

Sub Prog1()
Dim Name as String
Name = Inputbox ("Geben Sie Ihren Namen ein:")
Prog2(Name)
End Sub


Sub Prog2 (Name as String)
Msgbox Name
End Sub

Was ist der Unterschied? Warum braucht man bei der ersten Möglichkeit keinen Parameter, wenn der Parameter vor der Sub-Prozedur deklariert worden ist?
LG, Maxine
Anzeige
AW: Parameter Übergabe
05.07.2005 22:23:19
Matthias
Hallo Maxine,
im ersten Beispiel wird die Variable Name Modulweit deklariert, ist also in allen Prozeduren und Funktionen des Moduls bekannt. Eine Möglichkeit, aber keine saubere Programmierung, man sollte das vermeiden, wenn möglich.
Dein zweites Beispiel ist also besser ;-)
Gruß Matthias
Vielen Dank!
05.07.2005 23:13:29
Maxine
Ihr seid echt super! ;-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige