加载中…
个人资料
香格里拉的博客
香格里拉的博客
  • 博客等级:
  • 博客积分:0
  • 博客访问:13,798
  • 关注人气:1,645
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2017-07-27 20:54:43)
标签:

计算机

分类: 百宝箱
用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+】"替换成"【.*】"

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有