财会:提取数字 累加计算

高手坐镇

题目难度:★★★

读者求助:董师傅,我这个问题不知道是不是有点故意刁难的嫌疑,但请你一定要帮帮我!我现在手中有一些非标准的Excel,单元格里面有文字,也有数字,我不知道怎么提取数字进行累加,抓狂了。麻烦的是,这些非标准的Excel,还不能打回去重做(关系比较复杂,就不多说了),怎么办?冰天雪地跪求帮助!

董师傅:你的问题比较棘手,要让Excel自动识别文本中的数字并将其提取出来进行累加,可不是一个简单的活。董师傅的方法是这样,自定义一个函数CountNums,并赋予它提取数字并累加的功能。参考代码如下所示:

Function CountNums(rng As Range)

Dim X as integer

For X = 1 To VBA.Len(rng)

'将单元格中的数字取出后累加

If Mid(rng, X, 1) Like "[0-9]" Then

CountNums = CountNums + Val(Mid(rng, X, Len(rng)))

X =X + Len(Evaluate(Val(Mid(rng, X, Len(rng)))))

End If

Next X

End Function