publicfunction getsum(byval s asstring) aslongdim 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) =truethenset mhs = re.EXECute(s)
foreach mh in mhs
getsum = getsum + mh.value
nextendifend function
单元格中公式: =getsum(a1)
发表于:2008-01-11 09:33:522楼 得分:0
如果不想用正则:
vbscript code
publicfunction getnumsum(byval s asstring) aslongdim tmp asstringdim i aslongfor i =1tolen(s)
tmp =mid(s, i, 1)
ifisnumeric(tmp) then
tmp = val(mid(s, i))
getnumsum = getnumsum + val(tmp)
i = i +len(tmp) +1endifnextend function
发表于:2008-01-11 15:41:063楼 得分:0
谢谢您的提示,你的第二个方法很好,就是i = i + len(tmp) + 1这句,最后加的这个1是多余的。经我测试后,已收到很好的效果。谢了!