variable logic operators

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: variable logic operators
von: Tino
Geschrieben am: 15.10.2003 12:08:22

Hallo,

hat jemand eine idee wie man logic operators variable programmieren kann? Background: Eine if...then schleife hat bis zu fuenf conditions die jeweils mit AND oder OR und <, >, = verbunden sind.
Eine moeglichkeit ist natuerlich alle moeglichen varianten zu programmieren, nur bei denn vielen kombination ist das nicht gerade sehr hilfreich; ausserdem kann man dann schlecht aenderungen einbauen und muss den ganzen code aendern.

ich hatte mir vorgestellt eine methode zu programmieren:

Sub Test (logicOp1 as ..., logicOp2 as..., ...) as boolean

hier wuerde sich dann eine if.. then schleife befinden, etwa so:

If 500 logicOp1 [e.g. >] VariableA logicOp2 [e.g. AND] 400 logicOp1 [e.g.=] Variable B then
...
EndIf

kann man so etwas ueberhaupt in VB/VBA machen?

Ich bin fuer jede kommentar wirklich dankbar
vielen dank fuer die hilfe.

tino

Bild


Betrifft: AW: variable logic operators
von: Michael Scheffler
Geschrieben am: 15.10.2003 12:44:57

Hi,

die logischen Variablen heißen Boolean, hast Du ja schon herausgefunden.

Dann ist für Mehrfach-If's das "Select Case" zu empfehlen.

"<" oder ">" geht bei Boolschen nicht.

Aus der Hilfe:
Logische Operatoren
And (Operator)

Eqv (Operator)

Imp (Operator)

Not (Operator)

Or (Operator)

Xor (Operator)

Gruß

Micha


Bild


Betrifft: Ansatz
von: ChrisL
Geschrieben am: 15.10.2003 12:49:16

Hi Tino

Ich kenne natürlich die genauen Umstände nicht, denn spontan scheint mir dass du damit nicht wirklich eine Vereinfachung des Codes/Struktur erreichst, es sei denn dass die VariableA, VariableB etc. in Wirklichkeit Konstante sind.

Habe erst an eine Funktion gedacht, die mit Select Case je nach LogicOp die entsprechende Abfrage durchführt. Scheint mir aber insbesondere aufgrund der Kombination AND und OR schwierig.

Die Idee die ich nun habe, ist die Abfrage mittels String zusammen zu bauen und dann über eine Zelle.Formula zu gehen. Mit dem AND/OR wird es aber trotzdem schwierig. Insbesondere, wenn noch solche Abfragen dazu kommen... IF (X = Y OR X > Y) AND (Z < Y) etc. also mit Klammern.

Hier mal ein Denkanstoss...

Option Explicit


Sub Makro()
Dim VariableA As Double, VariableB As Double
VariableA = 1000
VariableB = 1200
Range("A1").Formula = "=IF(" & VariableA & Op(1) & VariableB & ",TRUE)"
MsgBox Range("A1").Value
Range("A1").ClearContents
End Sub




Function Op(logicOP As Byte) As String
Select Case logicOP
    Case 1: Op = "<"
    Case 2: Op = "="
    Case 3: Op = ">"
    'etc.
End Select
End Function



Gruss
Chris


 Bild

Beiträge aus den Excel-Beispielen zum Thema " variable logic operators"