Appliquer une formule à partir d'une listeJe voudrais utiliser la liste des formules et les appliquer à certaines colonnes en conséquence.Jette actuellement une erreur :
Send attend un objet inscriptible dans l'accès ou l'évaluation de 'Send' , col << /*###*/Set Formula
Exemple de liste de formules :
{:Colonne 7 + 2, :Col1 + 8, :umn 2 * 3, 3, Vide(), Vide(), Vide(), Vide()}
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
);
ScriptRe : Appliquer une formule d'une listeMerci, j'avais essayé d'utiliser Parse() mais on dirait que Char était la pièce manquante. J'avais utilisé Parse pour les noms de colonne, mais je les avais définis sur chaîne lors de l'obtention des noms, donc cela fonctionnait là-bas.
J'ai oublié d'inclure la référence de colonne dans le code car je l'avais réduite pour me concentrer sur le problème.Je vais certainement examiner comment et pourquoi ces deux options fonctionnent et pourquoi il était si difficile de les trouver.
Re : Appliquer une formule d'une listeJim a fourni la syntaxe Eval(Substitute()) pour travailler avec des expressions. Cependant, votre logique ne fonctionnera que si votre liste contient des espaces réservés pour les colonnes actuelles.
De plus, si vous créez une nouvelle colonne appelée "temp" puis une autre, elle s'appellera "temp 1" ; pourtant, vous n'attribuez que des formules à la colonne temp.J'ai joint un exemple de script avec une logique qui pourrait fonctionner pour vous.
J'utilise souvent Parse(Char()) lorsque je travaille avec des expressions, cependant, NameExpr() renvoie la valeur de l'expression, non évaluée et est particulièrement utile lors de la création d'expressions.Vous devriez revoir les fonctions Parse et Name Expr().
Vous le verrez dans le script ci-joint.
//Parser( Char( listeFormules[i] ) )
NomExpr( listeformulaire[i] )
Re : Appliquer une formule d'une listeEn supposant que la liste que vous avez montrée dans votre question est nommée "formulalist" et qu'elle se trouve dans l'espace de noms appelé "ms", je pense que le script ci-dessous fera ce que vous voulez
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] ) )
);
);