应该是这个意思吧,你把代码添加进去后就有了自定义eva函数,然后就=eva(单元格)就可以了。我很少用自定义函数,你看看是否满足你的需求
Function eva(rng As Range)
Dim reg, sols, c
Dim a As Long, b As Long
c = InStr(rng, "+")
If c > 0 Then
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.Pattern = "(\-*\d*)\+?(\d*)"
Set sols = reg.Execute(rng)
a = sols(0).submatches(0)
b = sols(0).submatches(1)
eva = a + b
Else
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.Pattern = "(\-*\d*)\-?(\d*)"
Set sols = reg.Execute(rng)
a = sols(0).submatches(0)
b = sols(0).submatches(1)
eva = a + (-b)
End If
End Function