Moin Moin,
Sorry das ich diese frage hier stelle aber ich habe gerade Kopfchaos:
Wenn ich eine IF Abfrage baue
und diese wie Folgt aussehen würde:
IF Var1 = 6 or Var1 = 10 or Var1 = 11 and Var2 = 0 then
msgbox „Treffer“
end if
Nun ist Var1 = 6 UND Var2 = 0 ist das ein „treffer“ ?
oder geht nur Var1 = 11 mit Var2 = 0 wegen dem and ?
mfg jonny
Moin, Joe,
IF Var1 = 6 or Var1 = 10 or Var1 = 11 and Var2 = 0 then
msgbox „Treffer“
end if
Nun ist Var1 = 6 UND Var2 = 0 ist das ein „treffer“ ?
Ja, die Var1 allein erfüllt schon die Bedingung, die weiteren Bedingungen werden dann gar nicht mehr geprüft.
oder geht nur Var1 = 11 mit Var2 = 0 wegen dem and ?
Sieh’s mal anders:
IF Var1 = 6 or Var1 = 10 or (Var1 = 11 and Var2 = 0)
Gruß Ralf
Moin Jonny
Wenn ich eine IF Abfrage baue
Zunächst kannst du das auch mit einr CASE Abfrage lösen, aber bleiben wir bei IF
IF Var1 = 6 or Var1 = 10 or Var1 = 11 and Var2 = 0 then
msgbox „Treffer“
end if
Wenn Du deine Bedingungen in Klammern setzt, schaffst du Klarheit.
IF (Var1 = 6 or Var1 = 10 or Var1 = 11) AND (Var2 = 0)
then msgbox „Treffer“
Hier sieht man dass die Var1 Möglichkeiten mit AND an VAR 2 gebunden sind. D.h. nur wenn Var2 = 0 ist, wirken die richtigen Besetzungen von VAr 1.
Nun ist Var1 = 6 UND Var2 = 0 ist das ein „treffer“ ?
Richtig.
oder geht nur Var1 = 11 mit Var2 = 0 wegen DES and ?
Geht auch.
Das Gleiche erreichst du mit einer Matrix Zuweisung:
If Var1 in [6,10,11] AND Var2= 0 then …
Oder
CASE Var1 6 : …
10: …
11: …
ENDCASE
AND Var 2 = 0
Gruss
Rochus
IF Var1 = 6 or Var1 = 10 or Var1 = 11 and Var2 = 0 then
Nun ist Var1 = 6 UND Var2 = 0 ist das ein „treffer“ ?
Ja, die Var1 allein erfüllt schon die Bedingung, die weiteren
Bedingungen werden dann gar nicht mehr geprüft.
Hallo Ralf,
von Excel schon. Auch wenn die erste Bedingung erfüllt ist werden alle anderen Bedingungen der If-Zeile noch überprüft, wozu weiß ich nicht.
Andersrum auch,
If A1=1 And B1=5 And C1=3
dann wird die ganze Zeile ausgewertet, auch wenn A1 nicht 1 ist.
Gruß
Reinhard
1 „Gefällt mir“
Moin, Rochus,
Wenn Du deine Bedingungen in Klammern setzt, schaffst du
Klarheit.
IF (Var1 = 6 or Var1 = 10 or Var1 = 11) AND (Var2 = 0)
aber nicht so
))
Das AND bindet vorrangig, deshalb wäre
IF Var1 = 6 or Var1 = 10 or (Var1 = 11 AND Var2 = 0)
äquivalent zu dem ursprünglichen Ausdruck. Ob der so gewollt war, ist eine andere Frage - unterstellen dürfen wir jedenfalls nichts.
Gruß Ralf
[ot] Auflösung von Bedingungen
Moin, Reinhard,
die weiteren
Bedingungen werden dann gar nicht mehr geprüft.
von Excel schon. Auch wenn die erste Bedingung erfüllt ist
werden alle anderen Bedingungen der If-Zeile noch überprüft,
wozu weiß ich nicht.
woran sieht man das?
Gruß Ralf
Danke !!
Ihr habt mich wieder etwas schlauer gemacht Klammern und MATRIX Zuweisungen OO…
vielen Dank
von Excel schon. Auch wenn die erste Bedingung erfüllt ist
werden alle anderen Bedingungen der If-Zeile noch überprüft,
wozu weiß ich nicht.
woran sieht man das?
Moin Ralf,
ups, das weiß ich nicht (mehr). Vielleicht an sowas:
Option Explicit
'
Sub test()
Dim T As Double, a, b, c, d, e, N As Double
Range("A1:B4").ClearContents
Range("A1").Value = Timer
For N = 1 To 1000000
If a = b And b = c And c = d And d = e Then
End If
Next N
Range("A2").Value = Timer
Range("A3").Value = Range("A2").Value - Range("A1").Value
Range("B1").Value = Timer
For N = 1 To 1000000
If a = b Then
If b = c Then
If c = d Then
If d = e Then
End If
End If
End If
End If
Next N
Range("B2").Value = Timer
Range("B3").Value = Range("B2").Value - Range("B1").Value
Range("A4:B4").NumberFormat = "0.0%"
Range("A4").Value = 1
Range("B4").Value = Range("B3").Value / Range("A3").Value
End Sub
Gruß
Reinhard