用Eval()函数克服evaluate()函数的局限求文本型数学表达式计算结果
2017-07-27 20:54阅读:
在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()来计算文本型数学表达式的计算结果。
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+】'替换成'【.*】'