Excel VBA @數量計算表
數量計算表中常在A欄打入計算式,B欄產生結果:
1. A欄打計算式,B欄再打一次計算式前面補個"="。
2. A欄打計算式,設定定義名稱指定到A欄,於參照欄位中使用內建函數Evaluate產生值。
B欄填寫"=AA" 即可產生數值。
有關更進一步的討論連結在此 Excel VBA @數量計算表-2
圖一、感謝鑒恩學長提供使用範例。 |
2. A欄打計算式,設定定義名稱指定到A欄,於參照欄位中使用內建函數Evaluate產生值。
B欄填寫"=AA" 即可產生數值。
圖二、AA定義名稱中的參照為內建函數Evaluate |
3. 將第2點的方式再更改成較為精簡的自訂函數。
進入開發人員中→檢視程式碼→新增模組→打入以下程式碼。
Public Function Eval(ByVal s As String)
s = Replace(s, "{", "(")
s = Replace(s, "[", "(")
s = Replace(s, "]", ")")
s = Replace(s, "}", ")")
Eval = Application.Evaluate(s)
End Function
P.S:因為在使用Evaluate內建函數的時候,他無法偵測小括號"("")" 以外的符號,Ex:{[]},故將程式碼多做一次代換的工作,日後就可以在計算式中比較好辨識優先順序。
日後使用時,一樣在A欄打計算式,B欄打入"=Eval(指定到A欄的儲存格)"即可產生數值囉~
圖三、自訂函數 |
圖四、操作範例(A1為計算式,C1為值) |
有關更進一步的討論連結在此 Excel VBA @數量計算表-2
留言
張貼留言