Wenden Sie eine Formel aus einer Liste anIch möchte eine Formelliste verwenden und sie entsprechend auf bestimmte Spalten anwenden.Derzeit wird ein Fehler ausgegeben:
Send erwartet ein skriptfähiges Objekt beim Zugriff oder bei der Auswertung von „Send“, Spalte << /*###*/Set Formula
Beispielformelliste:
{:Spalte 7 + 2, :Spalte 1 + 8, :umn 2 * 3, 3, Empty(), Empty(), Empty(), Empty()}
For( i = 1, i < ListSize + 1, i++,
If( i > colSize,
New Column( "temp" )
);//create columns to accomidate list size
col << Set Formula( ms:formulaList[i] );//set column formulas
);
Qualitäts- und VerfahrenstechnikBetreff: Wenden Sie eine Formel aus einer Liste anDanke, ich hatte versucht, Parse() zu verwenden, aber es sieht so aus, als ob Char das fehlende Teil war. Ich hatte Parse für Spaltennamen verwendet, diese aber beim Abrufen der Namen auf String gesetzt, damit es dort funktionierte.
Ich habe vergessen, den Spaltenverweis dort in den Code aufzunehmen, da ich ihn gekürzt hatte, um mich auf das Problem zu konzentrieren.Ich werde auf jeden Fall untersuchen, wie und warum diese beiden Optionen funktionieren und warum es so schwierig war, sie zu finden.
Betreff: Wenden Sie eine Formel aus einer Liste anJim stellte die Eval(Substitute())-Syntax für die Arbeit mit Ausdrücken bereit. Ihre Logik funktioniert jedoch nur, wenn Ihre Liste Platzhalter für aktuelle Spalten enthält.
Auch wenn Sie eine neue Spalte namens „temp“ und dann eine weitere erstellen, wird diese „temp 1“ heißen. Sie weisen der Spalte temp jedoch nur Formeln zu.Ich habe ein Beispielskript mit Logik angehängt, das für Sie funktionieren könnte.
Ich verwende Parse(Char()) oft, wenn ich mit Ausdrücken arbeite, NameExpr() gibt jedoch den Wert des Ausdrucks zurück, nicht ausgewertet, und ist besonders nützlich beim Erstellen von Ausdrücken.Sie sollten sich die Funktionen „Parse“ und „Name Expr()“ ansehen.
Sie werden es im beigefügten Skript sehen.
//Parse( Char( FormulaList[i] ) )
NameExpr( Formulalist[i] )
Betreff: Wenden Sie eine Formel aus einer Liste anAngenommen, die Liste, die Sie in Ihrer Frage angezeigt haben, trägt den Namen „Formulalist“ und befindet sich im Namensraum „ms“. Ich glaube, dass das folgende Skript das tun wird, was Sie wollen
For( i = 1, i < ListSize + 1, i++,
If( i > colSize,
New Column( "temp" )
);//create columns to accomidate list size
Eval(
Substitute(
Expr(
:temp << Set Formula( __formula__ );//set column formulas
)
),
Expr( __formula__ ),
Parse( Char( ms:formulaList[i] ) )
);
);