リストから数式を適用する数式のリストを使用し、それに応じて特定の列に適用したいと考えています。現在エラーがスローされます:
Send は、 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します、col << /*###*/Set Formula
式リストの例:
{:列 7 + 2、:Col1 + 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
);
品質およびプロセスエンジニアリングRe: リストから数式を適用するありがとう、Parse() を使おうとしましたが、Char が不足していたようです。 列名には Parse を使用していましたが、名前を取得するときに列名を文字列に設定していたので、そこで機能しました。
問題に焦点を当てるためにコードをトリミングしたため、コードに列参照を含めるのを忘れていました。これらのオプションの両方がどのように、なぜ機能するのか、そしてなぜそれらを見つけるのが非常に困難だったのかを必ず調べます。
Re: リストから数式を適用するJim は、式を操作するための Eval(Substitute()) 構文を提供しました。 ただし、ロジックはリストに現在の列のプレースホルダーがある場合にのみ機能します。
また、「temp」という新しい列を作成してから別の列を作成すると、「temp 1」という名前になります。ただし、式を列 temp に割り当てているだけです。機能する可能性のあるロジックを含むサンプル スクリプトを添付しました。
私は式を操作するときに Parse(Char()) をよく使用しますが、NameExpr() は評価されていない式の値を返すため、式を作成するときに特に役立ちます。Parse 関数と Name Expr() 関数を確認する必要があります。
添付のスクリプトで確認できます。
//Parse( Char( FormulaList[i] ) )
NameExpr( Formulalist[i] )
Re: リストから数式を適用する質問で示したリストの名前が「formulalist」で、「ms」という名前空間にあると仮定すると、以下のスクリプトで希望どおりの処理が実行されると思います。
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] ) )
);
);