Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA OR und AND Operatoren priorisieren

Forumthread: VBA OR und AND Operatoren priorisieren

VBA OR und AND Operatoren priorisieren
02.06.2025 20:32:18
ganzir
Hallo, gibt es ein Möglichkeit, den OR-Operator dazu zu bewegen, den Wahrheitswert anderer Statement als ganzes zu evaluieren?



If Worksheets("Tabelle1").Range("A2").Value = 30 And Worksheets("Tabelle1").Range("B2").Value > 22 Or Worksheets("Tabelle1").Range("A2").Value = 30 And Worksheets("Tabelle1").Range("B2").Value > 77 And Worksheets("Tabelle1").Range("C2").Value > 1 Then

Worksheets("Tabelle1").Range("H2").Value = "Ja"


Was ich nun möchte ist, dass alles was vor dem OR steht ausgewertet wird (A) und alles was nach dem OR kommt ausgewertet wird (B) und dann soll OR nur noch die Werte von A und B vergleichen.

Lässt sich dies durch geschickte Klammersetzung bewerkstelligen oder muss ich hier über eine Hilfsvariable gehen?
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA OR und AND Operatoren priorisieren
02.06.2025 20:46:30
Daniel
Hi

AND und OR sind in VBA Einzelwertoperatoren wie +,-,* und /.
Stehen mehrere in Reihe gilt die Regel "UND vor ODER". (Analog "Punkt vor Strich")

Dh zuerst wird das zu einem Wahrheitswert zusammengefasst, was vor und nach einem AND steht und mit diesem Ergebnis wird dann das OR berechnet.

Abweichende Priorisierungen kann mit einfachen Klammern erzeugen, wie bei einer Rechnung mit +-*/.

Gruß Daniel
Anzeige
AW: VBA OR und AND Operatoren priorisieren
02.06.2025 22:59:19
Yal
Moin,

Mit der Verwendung von Variablen und With kann man den Code leichter lesbar machen. Dann sind die Klammer (zwar überflüssig) deutlicher zu erkennen:
With Worksheets("Tabelle1")

A = .Range("A2").Value
B = .Range("B2").Value
C = .Range("C2").Value
If (A = 30 And B > 22) Or (A = 30 And B > 77 And C > 1) Then .Range("H2").Value = "Ja"
End With


Da "and" die Multiplikation und "or" die Addition entspricht, kann man A = 30 faktorisieren:
If (A = 30) And (B > 22 Or B > 77 And C > 1) Then


VG
Yal
Anzeige
AW: VBA OR und AND Operatoren priorisieren
02.06.2025 22:37:23
ganzir
Mein Code funkionierte von Anfang an, mein Denkfehler lag ganz wo anders.... Danke für die Klarstellung.
Anzeige
Anzeige