财会:提取数字 累加计算
高手坐镇
题目难度:★★★
读者求助:董师傅,我这个问题不知道是不是有点故意刁难的嫌疑,但请你一定要帮帮我!我现在手中有一些非标准的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