Applicare una formula da un elencoVorrei utilizzare l'elenco delle formule e applicarle di conseguenza a determinate colonne.Attualmente genera un errore:
Send prevede l'accesso o la valutazione di Scriptable Object di 'Send' , col << /*###*/Set Formula
Esempio di elenco di formule:
{:Colonna 7 + 2, :Col1 + 8, :umn 2 * 3, 3, Vuoto(), Vuoto(), Vuoto(), Vuoto()}
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
);
SceneggiaturaRe: Applicare una formula da un elencoGrazie, avevo provato a usare Parse() ma sembra che Char fosse il pezzo mancante. Avevo usato Parse per i nomi delle colonne ma li avevo impostati su string quando ottenevo i nomi, quindi funzionava lì.
Ho dimenticato di includere il riferimento alla colonna nel codice perché l'avevo ridotto per concentrarmi sul problema.Esaminerò sicuramente come e perché entrambe queste opzioni funzionano e perché è stato così difficile trovarle.
Re: Applicare una formula da un elencoJim ha fornito la sintassi Eval(Substitute()) per lavorare con le espressioni. Tuttavia, la tua logica funzionerà solo se il tuo elenco ha segnaposto per le colonne correnti.
Inoltre se crei una nuova colonna chiamata "temp" e poi un'altra verrà chiamata "temp 1"; tuttavia, stai solo assegnando formule alla colonna temp.Ho allegato uno script di esempio con una logica che potrebbe funzionare per te.
Uso spesso Parse(Char()) quando lavoro con le espressioni, tuttavia, NameExpr() restituisce il valore dell'espressione, non valutato ed è particolarmente utile durante la creazione di espressioni.Dovresti rivedere le funzioni Parse e Name Expr().
Lo vedrai nello script allegato.
//Analizza( Char( formulaList[i] ) )
NomeEspr( elenco formule[i] )
Re: Applicare una formula da un elencoSupponendo che l'elenco che hai mostrato nella tua domanda sia chiamato "formulalist" ed è nello spazio dei nomi chiamato "ms", credo che lo script seguente farà quello che vuoi
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] ) )
);
);