應用列表中的公式我想使用公式列表並將它們相應地應用到某些列。目前拋出錯誤:
發送在存取或評估「發送」時期望可編寫腳本的對象,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
);
品質和工藝工程回覆:應用程式清單中的公式謝謝,我曾嘗試使用 Parse() 但看起來 Char 是缺少的部分。 我使用 Parse 來獲取列名稱,但在獲取名稱時將它們設為字串,因此它可以在那裡工作。
我確實忘記在程式碼中包含列引用,因為我已將其精簡以專注於該問題。我一定會研究這兩個選項如何以及為什麼有效,以及為什麼很難找到它們。
回覆:應用程式清單中的公式Jim 提供了用於處理表達式的 Eval(Substitute()) 語法。 但是,只有當您的清單具有當前列的佔位符時,您的邏輯才會起作用。
此外,如果您建立名為「temp」的新欄位,然後建立另一個名為「temp 1」的新欄位;然而,您只是將公式指派給 temp 列。我附上了一個範例腳本,其中的邏輯可能適合您。
在處理表達式時,我經常使用 Parse(Char()),但是,NameExpr() 傳回表達式的值,未計算,並且在建立表達式時特別有用。您應該查看 Parse 和 Name Expr() 函數。
您將在隨附的腳本中看到它。
//解析( Char( 公式列表[i] ) )
NameExpr( 公式列表[i] )
回覆:應用程式清單中的公式假設您在問題中顯示的清單名為“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] ) )
);
);