If größer als 1: So funktioniert es in Excel
Schritt-für-Schritt-Anleitung
Um zu überprüfen, ob die Werte in den Zellen D36 oder D37 größer als 1 sind, kannst du den folgenden VBA-Code verwenden. Dieser Code gibt 31 zurück, wenn eines der beiden Felder den Wert über 1 hat oder nicht leer ist, andernfalls 38.
If Range("D36") > 1 Or Range("D37") > 1 Then
wksDaten.Cells(i, 11) = "31"
Else
wksDaten.Cells(i, 11) = "38"
End If
Achte darauf, dass du den Code in das richtige Modul deiner Excel-Datei einfügst, und dass wksDaten korrekt definiert ist.
Häufige Fehler und Lösungen
-
Falscher Zellbezug: Stelle sicher, dass du den richtigen Bezug zu den Zellen D36 und D37 hast. Wenn der Code auf das falsche Tabellenblatt verweist, könnte dies die Ausgabe beeinflussen.
-
Leere Zellen: Wenn Zellen D36 oder D37 leer sind, wird der Code immer 38 zurückgeben. Du kannst dies durch Hinzufügen einer Überprüfung auf leere Zellen verhindern:
If IsEmpty(Range("D36")) And IsEmpty(Range("D37")) Then
wksDaten.Cells(i, 11) = "38"
ElseIf Range("D36") > 1 Or Range("D37") > 1 Then
wksDaten.Cells(i, 11) = "31"
Else
wksDaten.Cells(i, 11) = "38"
End If
-
Format der Zellen: Stelle sicher, dass die Zellen im richtigen Format (Zahlenformat) sind. Wenn sie als Text formatiert sind, wird die Bedingung möglicherweise nicht korrekt ausgewertet.
Alternative Methoden
Wenn du nicht mit VBA arbeiten möchtest, kannst du die folgende Formel direkt in einer Excel-Zelle verwenden:
=IF(OR(D36>1, D37>1), 31, 38)
Diese Formel gibt ebenfalls 31 zurück, wenn eines der beiden Kriterien erfüllt ist, und 38, wenn beide Bedingungen nicht zutreffen.
Praktische Beispiele
Angenommen, du hast die folgenden Werte in D36 und D37:
Die Ausgabe des Codes oder der Formel wäre 31, weil D36 größer als 1 ist.
Wenn du jedoch die Werte:
hast, wäre die Ausgabe 38.
Tipps für Profis
-
Verwendung von Variablen: Wenn du oft auf dieselben Zellen zugreifst, kann es nützlich sein, Variablen für die Zellwerte zu erstellen, um die Lesbarkeit des Codes zu verbessern. Beispiel:
Dim valD36 As Variant
Dim valD37 As Variant
valD36 = Range("D36").Value
valD37 = Range("D37").Value
If valD36 > 1 Or valD37 > 1 Then
wksDaten.Cells(i, 11) = "31"
Else
wksDaten.Cells(i, 11) = "38"
End If
-
Debugging: Nutze die Debug.Print-Anweisung, um den Wert der Zellen während der Ausführung des Codes zu überprüfen. Dies kann helfen, Probleme zu identifizieren.
FAQ: Häufige Fragen
1. Warum gibt mein Code immer 38 zurück?
Überprüfe, ob die Zellen D36 und D37 Werte haben und ob sie korrekt formatiert sind. Wenn sie leer oder als Text formatiert sind, wird die Bedingung nicht erfüllt.
2. Kann ich diese Logik auch für mehr als zwei Zellen verwenden?
Ja, du kannst die OR-Bedingung erweitern, um mehr Zellen zu überprüfen, oder eine Schleife verwenden, um durch einen Zellbereich zu iterieren.