Excel·VBA文字数字混合求和

《excel吧提问-文字数字混合求和》,此类文字数字混合在同一单元格内的计算,可以使用vba正则表达式提取内容计算结果

建议:备注文字内容用[ ]分隔,( )定义运算顺序,半角

Function EVAL_REMARK(ByVal rng$)
    '对单元格带备注的数字、公式计算,返回计算结果
    '建议:备注文字内容用[ ]分隔,( )定义运算顺序,半角
    Dim result
    rng = Replace(rng, "【", "["): rng = Replace(rng, "】", "]")  '全角转半角
    rng = Replace(rng, "(", "("): rng = Replace(rng, ")", ")")
    With CreateObject("vbscript.regexp")  '正则表达式
        .Global = True
        .Pattern = "\[.*?\]|[^0-9+-/*^()]"
        result = .Replace(rng, "")
        EVAL_REMARK = Application.Evaluate(result)  '计算文本表达式,返回结果
    End With
End Function

举例

Excel·VBA文字数字混合求和_第1张图片

你可能感兴趣的:(excel,excel,vba)