Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
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
Inhaltsverzeichnis

Übergabe ByVal

Übergabe ByVal
05.03.2022 11:11:07
Alex
Morgen Leute
Mein Problem:
-Wenn ich den Sub1 aufrufe mit : Sub1(eVauel as Test1), läuft der Code. Wenn ich aber ein Wert aus der Function1 aus Sub1 holen will und eValue als Parameter übergebe, kommt die Fehlermeldung: Typ ByRef unverträglich!
Frage: Wie muss ich den Code ändern, dass das Programm auch in Function1 geht?
Enum TestEnum
Test1 = 0
Test2 = 1
End Enum

Sub Sub1(ByVal eValue as TestEnum)
Dim i as Long
i = Function1(eValue) 'Typ ByRef unverträglich
'Mach was
End Sub

Sub 

Function Funktion1 (ByVal eValue as TestEnum) as Long
'Mach was
End Sub
Danke im voraus und ein schönes Wochenende
Alex

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Übergabe ByVal
05.03.2022 11:23:07
Luschi
Hallo Alex,
was soll das denn?

Function Funktion1 (ByVal eValue as TestEnum) as Long
'Mach was
End Sub
fragt sich Luschi
aus klein-Paris
PS: eine Function, die etwas zurückgeben soll, muß diesen Rückgabe auch organisieren!
AW: Übergabe ByVal
05.03.2022 12:55:35
Alex
Moin Luschi
Danke für die schnelle antwort.
Das mit dem End Sbu bei Function1 ist wohl ein Schreibfehler..
Das die Function die Function1 nur als Körper dargestelltist und kein Wert zurück gibt, ist ohne Relevanz.
Da ich aus der C# Welt komme und nicht verstehe warmum das Programm abstürzt, auch wenn der Parameter vom Fuction1 explizit ByVal deklarirt ist, bin ich mit meinem Latein am Ende.
Vorschäge zu umgehen der Fehlermeldeung:
1. Weg:
Es gibt sicherlich den Weg die Function1 zu überschreiben und den Parametter mit String auszustatten.so das die Function1 mit dem Enumparameter sowie mit dem Sringparameter aufgeruffen werden kann.
2. Weg
Eine modulare Variable devinieren, die ich im Sub1 initialisere und in der Fuction1 auslese.
Welechen Weg würde der VBA Profi wählen?
Gruss Alex
Anzeige
AW: Übergabe ByVal
05.03.2022 12:21:48
Nepumuk
Hallo Alex,
was soll da nicht gehen?

Option Explicit
Enum TestEnum
Test1 = 0
Test2 = 666
End Enum
Public Sub Test()
Dim eValue As TestEnum
Call Sub1(eValue)
End Sub
Private Sub Sub1(ByRef eValue As TestEnum)
Dim i As Long
i = Funktion1(eValue)
MsgBox i
End Sub
Private Function Funktion1(ByRef eValue As TestEnum) As Long
Funktion1 = Test2
End Function
Ich frage mich aber wozu eine Variable als Enum-Klasse deklarieren?
Gruß
Nepumuk
AW: Übergabe ByVal
05.03.2022 13:35:26
Alex
Moin Neüpomuk
Nach einigem Suchen, habe ich bemerkt, dass in meinem Beispiel Funktion1 ein String als Parameter genügt, da ich bereits ein eine

Function geschrieben habe, die mir das Enum als String zurück gibt.
Im Beischpiel fehlt die Sch...
Funktion GetEnumValue(eValue as TestEnum) as String
if eValue = Test1 then GetEnumValue= "Hallo Welt"
if eValue = Test2 then GetEnumValue= "Hallo Fritz"
End Function
Nun kann ich die Fuctionen und Subs mit einem Stringparameter vesehen, was das Problem löst.
Vielen Dank an euch zwei und verzeiht mir disen diletantisch Fehler!!!
LG Alex
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige