1 | If Not (datacol = 8 Or datacol = 9) Then
|
Der Teil zwischen If und Then muss immer ein Wahr oder Falsch (engl. True / False) als Endergebnis haben. Es geht hier also jedesmal um die Erfüllung einer Bedingung (und keine Abfrage!).
Or ist ein Operator - hier speziell ein logischer - und bildet aus zwei Ausdrücke ein (wiederum) logisches Resultat:
-
False Or False ergibt False
-
True Or False, ergibt True
-
False Or True, ergibt True
-
True Or True, ergibt True
Not ist ebenfalls ein (logischer Operator, welcher einen logischen Ausdruck negiert (True -> False, False -> True)
Diese zwei Kenntnisse miteinander kombiniert ergibt die obige Zeile, welche wir nachfolgend nochmal stückchenweise betrachten.
1 | datacol = 8 Or datacol = 9
|
Wir Fragen ob die Spalte den Wert 8 oder 9 besitzt. Der obigen Übersicht zu entnehmen kommt hier jedesmal True (Wahr) heraus, sobald eines dieser zwei Bedinungen erfüllt ist.
1 | Not (datacol = 8 Or datacol = 9)
|
Da wir weder in Spalte 8 noch in Spalte 9 etwas machen wollen, müssen wir das Ergebnis negieren (aus True -> False machen).
Wichtig ist hier zu erkennen, dass man den Ausdruck klammern muss.
Logische Ausdrücke können unterschiedlich notiert sein und machen dennoch das gleiche. Möglich wäre also auch folgendes gewesen:
1 | If datacol <> 8 And datacol <> 9 Then
|
Du solltest dir diese Bedingung mal auf die gleiche Weise wie oben gezeigt stückchenweise durchdenken.
And:
-
False Or False ergibt False
-
True Or False, ergibt False
-
False Or True, ergibt False
-
True Or True, ergibt True
PS: Das sind u.a. Programmiergrundlagen die in jedem Buch, Tutorial und sogar in der VBA-Referenz nachzulesen sind.
|