vba实用小程序02计算任意公式的自定义函数

vba实用小程序02计算任意公式的自定义函数

ID:44173838

大小:22.01 KB

页数:3页

时间:2019-10-19

vba实用小程序02计算任意公式的自定义函数_第1页
vba实用小程序02计算任意公式的自定义函数_第2页
vba实用小程序02计算任意公式的自定义函数_第3页
资源描述:

《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》,转载请注明出处。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。