Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
Inhaltsverzeichnis

Unterschied zwischen Evaluate und

Unterschied zwischen Evaluate und
01.07.2016 16:04:52
Bizila
Hi leute
ich bin langsam am verzweifeln, möchte den wert meinen code's
TextBox6 = Evaluate("SumProduct(BAR!C$2:$C$999+BAR!$D$2:$D$999>=D2+H2)*(BAR!$C$2:$C$999+BAR!$D$2:$D$999 in vba in einem Textbox anzeigen lassen, beim Google gibt es gemischte Meinungen der eine sagt das mann es mit Evaluate hinbekommt, jedoch bekomme ich bei Evaluate die Fehlermeldung "Eigenschaften Value konnte nicht gesetzt werden. Typenkonflikt"
Dan gibt es Leute die sagen das es besser ist "WorksheetFunction.SumProduct" einzusetzen weil es besser sein soll.
Was ist jetzt besser und was ist der Unterschied zu den beiden Funktionen?
Soll ich weiter mit evaluate weiter machen...

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterschied zwischen Evaluate und
01.07.2016 16:34:44
Daniel
Hi
der mir bekannte unterschied ist, dass du bei Worksheetfunction.SumProduct die Zellbezüge in VBA-Schreibweise angeben musst Sheets("BAR").Range("C2:C999"), während bei Evaluate die gleiche Schreibweise wie bei den Formeln verwendet werden muss BAR!C2:C999
auch kann das Worksheetfunction nicht alles berrechnen, was in den Zellen möglich ist (z.B. Summe über mehrere Blätter), mit Evaluate geht so was.
aber der Fehler bei dir ist, dass die Klammersetzung nicht stimmt und die äussere Klammer für das Summenprodukt fehlt.
richtig ist es vermulich so:
TextBox6 = Evaluate("SumProduct((BAR!C$2:$C$999+BAR!$D$2:$D$999>=D2+H2)*(BAR!$C$2:$C$999+BAR!$D$2:$D$999)")
gruß Daniel

Anzeige
Oder eine ( ist zuviel, ...
01.07.2016 17:35:14
Luc:-?
…Folks:
TextBox6 = Evaluate("SumProduct((BAR!C2:C999+BAR!D2:D999>=D2+H2)*(BAR!C2:C999+BAR!D2:D999<=E2+I2)*(BAR!B2:B999=C2)*BAR!E2:E999)")
Da es sich um einen (Formel-)Text handelt, der sich nicht anpassen kann und muss, können auch die $$ entfallen.
Gruß, Luc :-?
Besser informiert mit …

AW: Unterschied zwischen Evaluate und
01.07.2016 17:44:24
ChrisL
Hi
Ob besser oder schlechter möchte ich nicht entscheiden. Selber verwende ich generell meist die WorksheetFunction und nicht Evaluate.
Mit Evaluate:
Methode(Funktion())
Mit WorksheetFunction:
Funktion()
Vielleicht eine blöde Begründung, aber WorksheetFunction scheint mir "direkter". Unter dem Strich (z.B. Berechnungsdauer) wird es aber kaum einen Unterschied machen.
Wenn die Formel fix ist, sparst du mit Evaluate ein paar Buchstaben Programm-Code.
In Bezug auf Flexibilität scheint mir WorksheetFunction günstiger. D.h. wenn du zuvor die Bereiche schon dynamisch definiert hast (mit Variablen und so), dann wäre es unsinnig diese für die Berechnung wieder in einen String umzuwandeln.
cu
Chris

Anzeige
Schein ist nicht sein, ...
01.07.2016 20:23:26
Luc:-?
…Chris;
ein FormelText kann auch flexibel zusammengesetzt wdn und damit hat man den Vorteil (Ähnliches hat Daniel schon angemerkt!), alle (Notations-)Möglichkeiten von Xl für FmlAngabe und -Berechnung nutzen zu können, während die WorksheetFunction in beiden Notationsformen auf die Unterstützung durch die Xl-Steuerung verzichten muss. D.h., alle Argumente müssen so angegeben wdn, wie es das FktsPgm eigentlich vorsieht. Die vorliegende Fml wäre mit SumProduct so gar nicht möglich, weil hier ein Ausdruck als alleiniges Argument, in dem ganze Vektoren mit Skalaren verglichen u/o direkt miteinander multipliziert wdn, verwendet wird. Das müsste entweder elementweise gemacht (die Vergleiche auf jeden Fall!) oder mehrere Argumente müssten angegeben wdn.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Unterschied zwischen Evaluate und
01.07.2016 18:23:01
snb

Sub M_snb()
MsgBox [sum((BAR!C$2:$C$999+BAR!$D$2:$D$999>=D2+H2)*(BAR!$C$2:$C$999+BAR!$D$2:$D$999

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige