本文链接:http://oicu.cc.blog.163.com/blog/static/123039471201132011345331/
最近都没写博客了,这4月可不能交白卷,好吧,来一篇……
先看相关的历史博文:
提取单元格的数字相加-求和
[Excel VBA] 提取字符串中数字、中文、英文字符的自定义函数(修正版)
老习惯,问题描述:
发信人: liji (里脊), 信区: OfficeSoft
标 题: 怎么提取一个单元格里的数字啊
发信站: 水木社区 (Tue Apr 19 15:02:24 2011), 站内
比如excel里有这么一个格子:好10坏5极其坏15,我想求10,5,15的和,有办法弄个公式不。
解决方法:
做一个自定义函数,就不加注释了。
'2011/4/20 Function RegExpGetStr(T As Range) As Double Dim regEx, Match, Matches Dim sum As Double Application.Volatile 'by oicu#lsxk.org Set regEx = CreateObject("vbscript.regexp") regEx.Pattern = "\d+" '这里是匹配正整数,如果是浮点数改为"(-?\d+)(\.\d+)?" '每次提取一位数字则用"\d" regEx.IgnoreCase = True regEx.Global = True regEx.MultiLine = False Set Matches = regEx.Execute(T.Text) For Each Match In Matches sum = sum + CDbl(Match) Next RegExpGetStr = sum End Function
|
使用方法:
假设A1的内容是:好10坏5极其坏15
那B1里写入公式:=RegExpGetStr(A1)
就会得到结果了。
稍微修改这个自定义函数,也可以用来提取数字!当然sum的类型也要改为string
sum = sum & Match
评论