Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel: (1=1)*1 = 1 ; VBA: (1=1)*1 = -1 ?

Excel: (1=1)*1 = 1 ; VBA: (1=1)*1 = -1 ?
09.05.2003 18:10:42
Boris
Hi Leute,

als Formel ergibt
=(1=1)*1 als Ergebnis 1

Hingegen ergibt

Sub test()
MsgBox (1 = 1) * 1
End Sub

als Ergebnis -1

Mit FALSCH-Werten (also z.B. =(1=2)*1) gibt´s in beiden Fällen logischerweise Null.

Warum in Excel 1 und in VBA -1?
Nicht eilig - interessiert mich aber schon.

Grüße Boris


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel: (1=1)*1 = 1 ; VBA: (1=1)*1 = -1 ?
09.05.2003 18:30:08
Forum

Hallo Boris

folgender Code dürfte einiges klären

In Deiner Formel ist als erstes ein Vergleich der wahr ist und dies ergibt -1 und -1*1 ist -1

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Besten Dank, aber...
09.05.2003 22:32:21
Boris

Hi Hajo,

danke für Deine Antwort.
Das ist aber auch nicht mein Gedankenproblem - kam vielleicht etwas falsch rüber.

Ich wundere mich, warum der Boolsche Wert WAHR - multipliziert mit 1 - in Excel eine postive 1, in VBA hingegen eine negative 1 ergibt.

Beispiel SUMMENPRODUKT:
=SUMMENPRODUKT((A1:A100="x")*(B1:B100="y"))
zählt, wie oft x und y nebeneinander in A und B vorkommen - und das geht ja nur, weil das jeweilige Ergebnis von (A1:A100="x")*(B1:B100="y") entweder 1 oder Null ergibt - und die Summe aller Einser (=WAHR) ist dann das Formelergebnis.

Da in VBA aber anscheinend ein WAHR mit -1 bewertet wird - müsste - nur um es hier mal vergleichbar zu machen - die gleiche Formel ein Minus-Ergebnis auswerfen, und das find ich halt etwas seltsam...

Grüße Boris

Anzeige
Wobei ich jetzt Blödsinn geschrieben habe...
09.05.2003 22:36:33
Boris

Hi Hajo,

"Da in VBA aber anscheinend ein WAHR mit -1 bewertet wird - müsste - nur um es hier mal vergleichbar zu machen - die gleiche Formel ein Minus-Ergebnis auswerfen..."

ist natürlich insofern Blödsinn, da -1*-1 natürlich auch wieder 1 ergäbe - aber ich denke trotzdem, das mein Gedankenproblem etwas besser rübergekommen ist (hoffe ich zumindest;-))

Gruß Boris

Problem gelöst...
09.05.2003 23:31:41
Boris

Man muss halt manchmal auch lesen können - steht in der VBA-Hilfe: TRUE = -1

Bleibt dennoch die Frage, warum VBA TRUE = -1 und Excel WAHR = 1, warum nicht beides 1 oder beides -1...

Das soll mir jetzt aber auch egal sein;-)

Boris

Anzeige
Re: Ergänzung
10.05.2003 00:50:25
Sigi E.

Hallo Boris,

genau genommen ist sowohl in Excel als auch in VBA

0 = FALSCH / False
ungleich 0 = WAHR / True

Du kannst es wie folgt testen:

Excel: "=UND(-3)" bzw. "=ODER(0)

VBA: MsgBox WorksheetFunction.And(23)
MsgBox WorksheetFunction.Or(0)

Warum das so ist, weis nur Bill III.

Gruß
Sigi

Da kannste nur den Kopf schütteln...
10.05.2003 21:41:58
Boris

Hi Sigi,

danke für deine Antwort.
Werde es mir aber ersparen, Billy Boy zu fragen, sondern es schließlich einfach so nehmen wie es nun mal ist;-))

Grüße Boris


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige