欢迎来到天天文库
浏览记录
ID:44173838
大小:22.01 KB
页数:3页
时间:2019-10-19
《vba实用小程序02计算任意公式的自定义函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、vba实用小程序02计算任意公式的自定义函数在Excel中,没有一个能够计算指定自变量的任意公式的值的通用函数。例如,我在单元格B2中放置公式mx+b,其中m和b是具体的数字,在单元格A2中放置自变量x的值,没有类似下面的函数来计算这个公式的值:=CalculateThisFormula(B2,A2)JonPeltier在其博客中为此编写了一个自定义函数,代码如下:FunctionCalculateThisFormula(FormulaAsVariant,XvalueAsVariant)AsVariantDimsFo
2、rmulaAsStringDimsXvalueAsStringSelectCaseTypeName(Formula)Case'Range'IfFormula.Cells.Count=1ThensFormula=Formula.ValueElseCalculateThisFormula=CVErr(xlErrValue)ExitFunctionEndIfCase'String'sFormula=FormulaCaseElseCalculateThisFormula=CVErr(xlErrValue)ExitFuncti
3、onEndSelectSelectCaseTypeName(Xvalue)Case'Range'IfXvalue.Cells.Count=1ThensXvalue=Xvalue.ValueElseCalculateThisFormula=CVErr(xlErrValue)ExitFunctionEndIfCase'String'sXvalue=XvalueCase'Double'sXvalue=CStr(Xvalue)CaseElseCalculateThisFormula=CVErr(xlErrValue)Exit
4、FunctionEndSelectsFormula=Replace(sFormula,'[x]','('&sXvalue&')')sFormula=Replace(sFormula,'[X]','('&sXvalue&')')CalculateThisFormula=Evaluate(sFormula)EndFunction说明:为了避免将公式中的x与函数中的字母x混淆,例如exp(),代码在方括号中放置自变量x,即[x]。这个自定义函数的语法为:CalculateThisFormula(Formula,Xvalue
5、)其中,Formula——代表公式的字符串,或者是对包含公式字符串的单元格的引用。例如,y=f(x),那么Formula为f(x),且自变量x必须表示为[x],并且在公式表达式中必须显示包含所有运算符。Xvalue——表示自变量x的值的数字或字符串,或者对包含数字值的单元格的引用。如果任一参数包含多个单元格或者不恰当的输入,那么公式将返回错误。下图1所示为自定义函数在工作表中的运用:图1在单元格B2中输入公式:=CalculateThisFormula(B$1,$A2)向下向右拖动至单元格E6。这个自定义函数也可以这
6、样使用:=CalculateThisFormula('4*[x]^2-3*[x]+5',2)=CalculateThisFormula('1/[x]',4)本文整理自peltiertech.com的文章《UDFtoCalculateanArbitraryFormula》,转载请注明出处。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
此文档下载收益归作者所有