Arnie Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 Hallo miteinander, ich programmiere soeben eine Messagebox von Visual Basic 6.0 nach. Nun ergibt sich bei meiner Version nur folgendes Problem: Ich muss bei allen Sachen Antworten geben und wenn es nur "" ist. Wenn ich dies nicht tue, erscheint vor Aufruf die Meldung: Argument ist nicht optional Weiss jemand, wie man diesen Fehler vermeiden kann und trotz unvollständiger Eingabe die Messagebox aufrufen kann? Hier nun der Quellcode: Public Sub Box(ByVal test1, ByVal test2, ByVal test3, ByVal test4, ByVal test5, ByVal test6, ByVal test7, ByVal test8, ByVal test9) MfG Arnie [edit by Mod] Damit der Bildschirm nicht ganz aus dem Rahmen springt [/edit] Zitieren
developer Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 Du könntest die Variablen initialisieren.... du könntest ne Abfrage machen und falls diese Falsch/Nothing/"" ist einfach ein Wert z.B. " " reinschreiben .... ect. Ich weiss aber ehrlich gesagt nicht so ganz, was du da proggen willst :D Zitieren
Arnie Geschrieben 26. Februar 2002 Autor Geschrieben 26. Februar 2002 Ich will die Funktionalität der MsgBox nachproggen. D.h. prompt, title, Buttonnamen, etc.! Habe oben stehende Funktion, welche als ein Steuerelement benutzt wird, geschrieben. Wenn man bei allen Werten etwas eingibt, funzt es einwandfrei, doch wenn man nur eins auslässt, spackt der a la Argument nicht optional! Ich habe bereits mehrere If-Abfragen geschrieben, welche dem vorbeugen sollen, doch er bekommt bei der Ausführung immer einen Epti. Er markiert die Funktion gelb und den Aufruf (c.Box) blau! Ich habe wirklich keine Ahnung mehr, was ich noch machen kann... Es muss doch, wie bei einer MsgBox möglich sein, wenn man die Klammer schließt, bevor alle nicht relevanten Werte eingegeben sind, dass es trotzdem funzt. MfG Arnie Zitieren
KarlBerg Geschrieben 26. Februar 2002 Geschrieben 26. Februar 2002 Hi, musste den Rechner platt machen, deshalb hab ich momentan kein VB installiert. Hab dann das hier in VBA getestet, musste halt noch etwas abändern. Sub Caller() Dim Var1 As String Var1 = "Tach" Call Called(Var1) 'wird nur EINE Variable übergeben End Sub Sub Called(Optional ByVal Var1 As String, Optional ByVal Var2 As String) 'wartet "eigentlich" auf 2 Variablen MsgBox "Hier erste Variable: " & Var1 & vbCrLf & _ "Hier zweite Variable: " & Var2 End Sub MfG KarlBerg Zitieren
Arnie Geschrieben 27. Februar 2002 Autor Geschrieben 27. Februar 2002 Was ein Wort so alles ausmachen kann... Es funktioniert nun einwandfrei. Vielen Dank KarlBerg! MfG Christian Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.