新浪博客

用Eval()函数克服evaluate()函数的局限求文本型数学表达式计算结果

2017-07-27 20:54阅读:
用Eval()函数克服evaluate()函数的局限求文本型数学表达式计算结果


在Excel中可以用evaluate()函数求文本型数学表达式的计算结果,不过Evaluate有个缺陷,使用它时字符数不能超过一定的量(可能是255个),这个时候可以采用Eval函数来实现EValuate的功能,操作方法如下:


1. 新建一EXCEL工作簿BOOK1.xls,打开;


2. 按Alt+F11打开VB编辑器,插入一模块;


3
. 在模块中输入一下代码、自定义一函数DEva():


Function DEva(Cell)
With CreateObject('MSScriptControl.ScriptControl')
.Language = 'vbscript'
DEva = .eval_r(Cell)
End With
End Function


4. 关闭后可以在单元格里直接调用DEva()来计算文本型数学表达式的计算结果。


用Eval()函数克服evaluate()函数的局限求文本型数学表达式计算结果
Alt+F11,左上角空白处,右键,添加模块,然后复制下面的代码,返回Excel,只要在后面单元格中输入=ZM(前面单元格)就行了。
Function ZM(x)
Dim reg, mh
Set reg = CreateObject('vbscript.regexp')
reg.Pattern = '【+\w+】'
reg.Global = True
ZM = Evaluate(reg.Replace(x, ''))
End Function


如果【】里面是汉字把原来的'【+\w+】'替换成'【.*】'

我的更多文章

下载客户端阅读体验更佳

APP专享