HERBERS Excel-Forum - das Archiv
IIf - Anweisung mit Sprungmarke
Mathias

Ich möchte eine IIf - Abfrage verwenden und darin eine Sprungmarke einfügen. Leider hab ich keine Ahnung, weshalb meine Variante nicht funzt. Könnt ihr mir helfen? Hier mein Versuch:
 IIf IsNumeric(TextBox1.Value), Goto Start,  GoTo Beenden

AW: IIf - Anweisung mit Sprungmarke
Hajo_Zi

Hallo Matthias,
mit Sprungmarken wird eigentlich nicht meher gearbeitet.
Ich würde vermuten bei Dir fehlt ein KLammerpaar ()

erl.
Mathias

Ich glaub, ich hab es:
http://www.vbarchiv.net/commands/IIF.php
Es gehen nur Strings, mit denen man arbeiten kann!!!
Du verwendest IIf falsch (anstatt If)...
NoNet

Hallo Mathias,
IIf (...) ist doch eine Funktion, die einen WERT zurückgibt (ähnlich der WENN()-Tabellenblattfunktion !) und keine Funktion zum Überprüfen und daraus resultierendem "Springen" im Code.
Dazu benötigst Du einfach nur eine IF-Anweisung :
Private Sub CommandButton1_Click()
If IsNumeric(TextBox1.Value) Then GoTo Teil1 Else: GoTo Teil2
Teil1:
MsgBox "Teil 1"
GoTo Ende
Teil2:
MsgBox "Teil 2"
Ende:
End Sub
Davon abgesehen ist "GOTO" wirklich ein Sprachelement, das man nicht (mehr) verwenden sollte !
Gruß, NoNet
...zumindest nicht bei so etwas wie...
Luc:-?

...deinem Bsp, NoNet... ;-)
Es gibt aber schon noch Fälle, wo der GoTo- bzw GoSub-Einsatz sinnvoll sein kann — besonders in Kombination mit On. Für dein Bsp wäre das so...
On 1 + IsNumeric(TextBox1.Value) GoTo Teil2
Wenn numerisch, ergibt sich 0 &rarr es wird mit dem nächsten Befehl, also der Teil1-MsgBox, fortgesetzt.
Fazit: Eine Sprungmarke und etliche Zeichen eingespart, 1 VglOperation durch einfache Addition ersetzt (bleibt nur noch die VglFkt)!
Gruß Luc :-?
Ich habe Mathias' Beispiel 1:1 umgesetzt
NoNet

Hey Luc,
ich habe Mathias' Versuch lediglich 1:1 in eine funktionierende Variante umgeformt. Auf diese "GoTo"-Variante bezog sich mein "Kommentar".
Dass "GoTo" in anderen Fällen ("On Error" etc.) sinnvoll sein kann, würde ich nicht dementieren...
Gruß, NoNet