Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
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

function handle

function handle
18.04.2020 20:04:41
dx145
Hallo zusammen
Ich lese über ein csv File Messdaten ein. Diese sollten sich nach einer gewissen Formel verhalten. Um Soll und Ist rafisch zu Vergleichen möchte ich in das Istdiagramm noch die Sollkurve hinzufügen.
Die Funktionen können Polynome höherer Ordnung oder auch Exponantialfunktionen oder Kombinationen davon sein. Lange rede kurzer Sinn.
Ich möchte in eine Zelle eine Funktion eintragen, die von einem Eingang abhängig ist. Diese möchte ich mit vba verwenden. Gleich wie ein Function Handle in MatLab.
https://ch.mathworks.com/help/matlab/function-handles.html
Symbolisches Bsp:
for k=1 to 100
Array(k) = f(k)
next k
Wobei f in einer Zelle definiert werden kann, ohne dass der Benutzer das VBA Skript bearbeiten muss.
Gibt es da eine Lösung mit VBA?
Bin leider durch google auf nichts gescheites gestossen.
Danke euch.
Gruss
dx145

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: function handle
18.04.2020 20:46:40
dx145
Habe es mit Eval bzw. Evaluate versucht.

Evaluate ("Cells(8, 1).Value = 1")
Cells(9, 1).Value = Evaluate("1")
Beides geht nicht, das untere gibt sogar ein Kompilierungsfehler. Anstelle der 1 Würde ich dann einfach die Formel aus einer Zelle einfügen.
BSP:
In Zelle (1,1) steht dann z.B. Exp(x)+x^3+12*x^2+7*x+17.9

Dim x , WertFuerDiagramm As Variant
x = 42
WertFuerDiagramm = Evaluate(Cells(1,1).Value)

Evaluate ist für xlFmln, nicht vbKonstrukte! owT
18.04.2020 22:17:37
Luc:?
:-?
AW: Evaluate ist für xlFmln, nicht vbKonstrukte! owT
19.04.2020 11:57:42
dx145
Hallo Luc
Verstehe leider nicht was du damit meinst. Auch mit google nicht. Kannst du mir das besser erklären?
Danke und Gruss
Anzeige
Mit Evaluate wertet man Xl-Fml-Texte aus, ...
19.04.2020 15:36:02
Luc:?
…dx145,
und zwar in US-Original-Notation (wie inzwischen auch Daniel angemerkt hat). Da kannst du keine VBA-Befehle und -Objekte, ihre Methoden und Eigenschaften direkt als Text einbinden, sondern ggf nur ihr Ergebnis als Text. Das Ganze muss dann aber auch eine fktionsfähige Xl-Fml ergeben.
Das wäre der alten XLM-Fkt AUSWERTEN (nur per benannter Fml anwendbar!) vglbar, die allerdings lokal notierte Fml-Texte auswertet.
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
AW: function handle
18.04.2020 22:17:46
onur
Und wozu das Ganze ?
Wieso trägst du die Formel nicht einfach in die Zelle ein, wie jede normale Formel auch ?
AW: function handle
18.04.2020 22:57:41
Daniel
Hi
So könnte dein Beispiel funktionieren:
1. verwende in der Formelvorlage in A1 anstelle des klassischen "x" für die Variable ein Zeichen oder eine Zeichenfolge, welche ansonsten in der Formelvorlage nicht vorkommt.
Das "x" kommt hier auch im "Exp" vor, und das macht es dann schwierig, die 42 in die Formelvorlage zu bringen, denn dieses "x" muss ja als "x" erhaltennleiben.
Also in A1 dann: Exp(_x)+_x^3+12*_x^2+7*_x+17.9
2. um die VBA-Variable X in so in die Formelvorlage einzubauen dass diese mit Evaluate berechnet werden kann, programmiere dies:
WertFuerDiagramm = Evaluate(Replace(Cells(1, 1).value, "_x", X))
Gruß Daniel
Anzeige
AW: function handle
19.04.2020 11:56:19
dx145
Hallo zusammen
Geht leider bei mir nicht.
Habe folgendes probiert, als Minimalbeispiel:
Cells(9, 1).Value = Evaluate("1")
Da kommt:
Laufzeitfehler 1004
Anwendungs- oder objektdefinierter Fehler.
Dann habe ich folgendes Probiert:
X = k + 1
Cells(9, 1).Value = Evaluate(Replace(Range("F11").Value, "_x", CStr(X)))
In F7 steht 1 oder _x.
Beides mal der selbe Fehler wie oben.
Geht mein Vorhaben überhaupt oder gibt es eine andere Lösung?
Danke euch.
AW: function handle
19.04.2020 12:05:05
Daniel
Kannst du mal ne Beispieldatei hochladen, die die von dir hier im Forum beschrieben Fälle und deine Makroversuche enthält?
Gruß Daniel
Anzeige
AW: function handle
19.04.2020 12:41:33
dx145
Hallo zusammen
Habe mal versucht Minimalbeispiele zu generieren.
https://www.herber.de/bbs/user/136852.xlsm
Habe jetzt rausgefunden wenn ich meine test 1 als "1" schreibe geht es. wenn ich aber nir 1 schreibe geht es nicht. auch mit CStr nicht. komisch.
habe die Funktion noch nicht vollständig durchschaut.
AW: function handle
19.04.2020 13:22:34
Daniel
hi
der text, den du bei Evaluate als Parameter angibst, muss dem einer funktionierenden Excelformel in englischer Schreibweise mit A1_addressierung entsprechen.
dann kann Evaluate die Formel berechnen und das Ergebnis zurückgeben.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige