您的位置:程序门 -> vb -> vba



如何取出一段字符串中数字的和


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何取出一段字符串中数字的和
发表于:2008-01-10 16:58:34 楼主
  在excel中,如何取出一个单元格内字符串中数字的和。例
 在c1单元格中有一串字符串,“301日霜1晚霜25护手霜3天”
如何使用vba实现对上述字符串中数字求和。求和结果应该是330
发表于:2008-01-10 17:21:111楼 得分:0
在excel中添加一个模块,选择“工具-引用”,引用microsoft   vbscript   regular   expressions   5.5   ,添加如下代码到模块中:

vbscript code
public function getsum(byval s as string) as long dim re as regexp dim mh as match dim mhs as matchcollection set re = new regexp re.global = true re.pattern = "\d+" if re.test(s) = true then set mhs = re.EXECute(s) for each mh in mhs getsum = getsum + mh.value next end if end function


单元格中公式:
=getsum(a1)
发表于:2008-01-11 09:33:522楼 得分:0
如果不想用正则:

vbscript code
public function getnumsum(byval s as string) as long dim tmp as string dim i as long for i = 1 to len(s) tmp = mid(s, i, 1) if isnumeric(tmp) then tmp = val(mid(s, i)) getnumsum = getnumsum + val(tmp) i = i + len(tmp) + 1 end if next end function
发表于:2008-01-11 15:41:063楼 得分:0
谢谢您的提示,你的第二个方法很好,就是i   =   i   +   len(tmp)   +   1这句,最后加的这个1是多余的。经我测试后,已收到很好的效果。谢了!
发表于:2008-01-11 16:34:004楼 得分:0
二楼的方法很巧妙,学习了。


快速检索

最新资讯
热门点击