Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

Forumthread: 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


Anzeige

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

Anzeige
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

Anzeige
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

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

Anzeige
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


;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige