kann mir jmd sagen, waurm diese If-Abfrage nicht klappt!? er meckert, dass kein if vor dem else ist?!
If summestd = "" And summeistd <> "" And summeistd > 8 Then _
summeges = 8
Else
summeges = summeistd
End If
Um in VBA ein korrektes If-Else-Konstrukt zu erstellen, folge diesen Schritten:
Bedingung definieren: Beginne mit der If-Anweisung und definiere die Bedingungen.
If summestd = "" And summeistd <> "" And summeistd > 8 Then
Aktion bei erfüllter Bedingung: Füge die Aktion hinzu, die ausgeführt werden soll, wenn die Bedingung erfüllt ist.
summeges = 8
Else-Anweisung hinzufügen: Hier kannst du die Else-Anweisung einfügen, die die Aktion definiert, wenn die Bedingung nicht erfüllt ist.
Else
summeges = summeistd
End If
Überprüfen auf Syntaxfehler: Achte darauf, dass kein Unterstrich (_) am Ende der If-Zeile steht, da dies die If-Anweisung vorzeitig abschließt und zu einem Fehler führt (wie von Jonny im Forum angesprochen).
Fehlermeldung: "Else ohne If": Dieser Fehler tritt auf, wenn VBA denkt, dass die If-Anweisung nicht korrekt abgeschlossen wurde. Stelle sicher, dass die Syntax korrekt ist und kein unerwünschter Unterstrich verwendet wird.
Falsche Logik: Achte darauf, dass du die Bedingungen korrekt formuliert hast. Ein Fehler in der Bedingung kann dazu führen, dass das If-Statement nicht wie gewünscht funktioniert.
Wenn du in Excel mit komplexeren Bedingungen arbeiten möchtest, kannst du auch die Select Case-Anweisung in Betracht ziehen. Diese Methode ist besonders nützlich, wenn du mehrere Bedingungen prüfen musst und dabei eine übersichtlichere Struktur wünschst.
Select Case summeistd
Case Is > 8
summeges = 8
Case Else
summeges = summeistd
End Select
Hier ist ein einfaches Beispiel, das zeigt, wie du in VBA eine If-Anweisung ohne Fehler implementierst:
Sub BeispielIfElse()
Dim summestd As String
Dim summeistd As Double
Dim summeges As Double
summestd = ""
summeistd = 9
If summestd = "" And summeistd <> "" And summeistd > 8 Then
summeges = 8
Else
summeges = summeistd
End If
MsgBox summeges
End Sub
Dieses Beispiel zeigt, wie du die Bedingungen korrekt setzen kannst und verhindert, dass du einen Fehler wie "else ohne if" erhältst.
1. Kann ich eine Else-Anweisung ohne If verwenden?
Nein, in VBA ist es notwendig, dass jede Else-Anweisung einer If-Anweisung folgt. Ohne If wird die Else-Anweisung nicht erkannt.
2. Was passiert, wenn ich einen Unterstrich am Ende der If-Zeile lasse?
Der Unterstrich wird als Fortsetzungszeichen interpretiert, was dazu führt, dass VBA denkt, die If-Anweisung sei noch nicht abgeschlossen. Dies führt zu einer Fehlermeldung.
3. Gibt es eine Möglichkeit, mehrere Bedingungen einfacher zu handhaben?
Ja, anstelle von mehreren If-Else-Anweisungen kannst du die Select Case-Anweisung verwenden, um die Lesbarkeit deines Codes zu verbessern.