Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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

If ... Else funktioniert ohne Else?

If ... Else funktioniert ohne Else?
Reinhard
Hallo Wissende,
in einer Fremdmappe sah ich diesen Code im Modul einer Userform.
btnAbbrechen ist ein Commandboutton auf der UF.

Private Sub btnAbbrechen_Click()
Dim a
a = MsgBox("Wollen Sie die Erfassungsmaske ohne Speicherung beenden?", vbYesNo)
If a = vbNo Then Exit Sub Else
Unload Me
End Sub
Wieso funktienert der Code? Wieso meldet sich der Debugger nicht und reklamiert "End If" an?
Bei

Private Sub btnAbbrechen_Click()
Dim a
a = MsgBox("Wollen Sie die Erfassungsmaske ohne Speicherung beenden?", vbYesNo)
If a = vbNo Then
Exit Sub
Else
Unload Me
End If
End Sub
oder

Private Sub btnAbbrechen_Click()
Dim a
a = MsgBox("Wollen Sie die Erfassungsmaske ohne Speicherung beenden?", vbYesNo)
If a = vbNo Then Exit Sub
Unload Me
End Sub
hätte ich hier nicht nachgefragt. Mit Haltepunkt und F8 sehe ich daß "Else" gar nicht "angesprungen wird wenn a VBNo ist es wird gleich zu "Unload Me" "gehüpft".
Gruß
Reinhard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: If ... Else funktioniert ohne Else?
16.06.2011 14:49:52
Rudi
Hallo,
bei nem einzeiligen If braucht's kein End If, bzw darf kein End If.
Allerdings ist Else hier überflüssig, da nichts angegeben. Kannst ja mal was hinter schreiben.
If Bedingung then
tu was
Else
End If

funktioniert ja auch.
Gruß
Rudi
AW: If ... Else funktioniert ohne Else?
16.06.2011 16:13:14
Reinhard
Hallo Rudi,
also "übersieht" der ansonsten strenge Debugger bei
If 1 = 1 Then MsgBox "huhu" Else
das "Else", aber hier (so wie ich es gewohnt bin) nicht und reklamiert es:
MsgBox "huhu" Else
Wenn dem so ist dann ist meine Anfrage gelöst/beendet.
Danke
Gruß
Reinhard
Anzeige
AW: If ... Else funktioniert ohne Else?
16.06.2011 16:23:18
Rudi
Hallo,
Else ohne If geht nicht.
Gruß
Rudi
AW: If ... Else funktioniert ohne End If?
16.06.2011 17:11:21
Reinhard
Hallo Rudi,
"Else ohne If geht nicht."
das habe ich doch gar nicht behauptet. In:
If 1 = 1 Then MsgBox "huhu" Else
steht das "Else" hinten in der Codezeile funktionslos rum.
In anderen Codezeilen ohne If vorne würde der Debugger das sofort bemängeln daß da irgendein Term einfach so hinten in einer Zeile steht.
PS: habe den Betreff korrigiert :-)
Gruß
Reinhard
AW: If ... Else funktioniert ohne End If?
16.06.2011 19:20:29
Christian
Hallo Reinhard,
If 1 = 1 Then MsgBox "huhu" Else
...steht das "Else" hinten in der Codezeile funktionslos rum...

ja, da ist ist die "Sonst-Anweisung" überflüssig genau wie bei:
If 1 = 1 Then
MsgBox "huhu"
Else
End If
Das hat Rudi dir ja bereits erklärt.
Über was du stolperst ist offensichtlich, dass man eine If-Anweisung auch in einer Zeile schreiben kann und dann wird diese nicht mit einem "End If" abgeschlossen.
Gruß
Christian
Anzeige
AW: If ... Else funktioniert ohne End If?
17.06.2011 14:37:06
MichaV
Hier mal kürzest möglichen If-Anweisungen zur Verdeutlichung. 1 und 3 sind Zeilen, ohne EndIf. 2 und 4 sind Blöcke, die müssen mit EndIf abgeschlossen werden.
Hinter dem If muss ein Wahheitswert stehen, hinter dem Else jedoch nicht.

Option Explicit
Sub test()
'1
If True Then:
'2
If True Then
End If
'3
If True Then Else
'4
If True Then
Else
End If
End Sub
Gruss- Micha
1) und §) liegt mir noch schwer im Magen aber
17.06.2011 19:22:09
Reinhard
Hallo Michael, Christian, Rudi,
2) und 4) verstehe ich, die sind kein Problem, so bin ich das gewohnt.
1) und 3), nunja, ... :-)
Aber bitte, laßt's mal gut sein.
Ich zumindest werde hinten in einer IF-Codezeile kein für mich unnötiges Else hinschreiben.
Wenn ich Fremdcode damit sehe, okay dann weiß ich der funktioniert trotzdem also alles in Butter.
Schönes WE *wünsch*
Gruß
Reinhard
Anzeige
:) mT
17.06.2011 19:41:05
MichaV
mir liegt mein letzter Satz (der vor dem Option Explicit) noch schwer im Magen... so ein gewurschtel.
Das solte da stehen:
Hinter dem If muss ein Warheitswert stehen, hinter dem Then und dem Else kanns aber leer bleiben.
Naja, Du hast es ja inzwischen aufgegeben :o)
Dir auch ein schönes WE -

Option Explicit
Sub fuer_reinhad()
If True Then MsgBox "Gruss- Micha" Else
End Sub

91 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige