Excel VBA @數量計算表
數量計算表中常在A欄打入計算式,B欄產生結果: 圖一、感謝鑒恩學長提供使用範例。 1. A欄打計算式,B欄再打一次計算式前面補個"="。 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