Herbers Excel-Forum - das Archiv

variable logic operators

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
Excel-Beispiele zum Thema " variable logic operators"
Variablenübergabe in andere Arbeitsmappen Text aus Textbox in Variable
Einlesen von Zellinhalten in Variablen Variable in Formel einbauen
Variable in Excel-Formel einbauen. Text aus UserForm-Textbox in Variable einlesen
Variable in Zwischenablage übernehmen Variablen in einer temporären Textdatei zwischenspeichern
Zellinhalte in Verbindung mit Variablen in Textdatei schreiben Feldvariable auf Inhalt testen