Aplicar una fórmula de una listaMe gustaría usar la lista de fórmulas y aplicarlas a ciertas columnas en consecuencia. Actualmente lanzar un error:
Send Expects Scriptable Object en el acceso o evaluación de 'Send', col << / * ### * / Set Formula
Ejemplo de lista de fórmulas:
{: Columna 7 + 2,: Col1 + 8,: umn 2 * 3, 3, Vacío (), Vacío (), Vacío (), Vacío ()}
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
);
Re: aplicar una fórmula de una listaGracias, había intentado usar Parse () pero parece que Char era la pieza que faltaba. Había usado Parse para los nombres de las columnas, pero los había establecido en cadenas al obtener los nombres, por lo que funcionaba allí.
Olvidé incluir la referencia de la columna en el código allí, ya que lo había recortado para centrarme en el problema. Definitivamente miraré cómo y por qué funcionan ambas opciones y por qué fue tan difícil encontrarlas.
Re: aplicar una fórmula de una listaJim proporcionó la sintaxis de Eval (Substitute ()) para trabajar con expresiones. Sin embargo, su lógica solo funcionará si su lista tiene titulares para las columnas actuales.
Además, si creas una nueva columna llamada "temp" y luego otra se llamará "temp 1"; sin embargo, solo está asignando fórmulas a la temperatura de la columna. Adjunté un script de ejemplo con lógica que podría funcionar para usted.
A menudo uso Parse (Char ()) cuando trabajo con expresiones, sin embargo, NameExpr () devuelve el valor de la expresión, sin evaluar y es especialmente útil cuando se crean expresiones. Debería revisar las funciones Parse y Name Expr ().
Lo verás en el guión adjunto.
// Parse (Char (formulaList [i]))
NameExpr (formulalist [i])
Re: aplicar una fórmula de una listaSuponiendo que la lista que mostraste en tu pregunta, se llame "formulalist" y esté en el espacio de nombres llamado "ms", creo que la siguiente secuencia de comandos hará lo que quieras
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] ) )
);
);