VisualBasic Kurzformen IF / Else:

D

derBobby

Gast
Hallo zusammen,

Code:
        If .TextBox_barEin = "" Then Cells(schreibZeile, 7).ClearContents
        Else: Cells(schreibZeile, 7) = CDbl(.TextBox_barEin)
        End If

Wieso erzeugt VBA da automatisch einen Doppelpunkt? Ich verstehe es nicht und finde im Internet keine Infos dazu...

Wollte ja eigentlich nur das 5-Zeilige Konstukt if, else end if auf 3 Zeilen kürzen, aber das funktioniert so nicht.

Gruß Bobby
 
Was stört dich am Doppelpunkt?
Der Doppelpunkt ist dazu da, mehrere Anweisungen in eine Zeile zu packen...

Wobei die Lesbarkeit des Codes durch solche "Komprimierung" nicht unbedingt besser wird...
 
Ich verstehe deine Frage bzw. das Problem nicht. Dein Beispiel ist doch bereits auf 3 Zeilen gekürzt.
Der Doppelpunkt ermöglicht erst die Kurzform (auch wenn ich den eher exotisch finde). Es gibt noch andere Kurzschreibvarianten die akzeptiert werden. Nach dem MSDN zum Beispiel
Code:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
 
@Drakonomikon:
Naja es gibt ja sogar eine noch kürzere Kurzform, da kommt man ohne Doppelpunkt aus wenn es jeweils nur ein Statement gibt...
http://msdn.microsoft.com/de-de/library/752y8abs.aspx schrieb:
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

Zudem sollte man VBA nicht mit VB gleichsetzen... für VBA sollte eher das herangezogen werden: http://msdn.microsoft.com/de-de/isv/aa905357 bzw. http://msdn.microsoft.com/en-us/library/bb190882(v=office.11).aspx
aber finde ich da auch nicht wirklich die Statements... :-)
 
Zuletzt bearbeitet:
Code:
Private Sub CommandButton1_Click()

    If Cells(1, 1) = "x" Then Cells(2, 1) = "X"
    Else: Cells(2, 1) = "Y"
    End If

End Sub

Ergibt bei mir "Fehler beim Kompilieren: Else ohne If"
 
Da fehlt auch noch ein Doppelpunkt. Der Doppelpunkt ersetzt im Grunde immer den Zeilenumbruch. Beispiel:

Code:
If a = c Then : a = b
Else : a = d
End If
 
Zurück
Oben