有个函数,但很难用,要定义名称
如果你能使用宏功能,加入下面这个函数后就可以实现你要的功能了。
如A1单元格填写“2*3*4”,A2单元格写公式“=MyEvaluate(A1)”就能得到结果“24”。
Function MyEvaluate(EvaStr As String)
Dim i&, P%, Si&
For i = 1 To Len(EvaStr)
If Mid(EvaStr, i, 1) = "(" Then
P = P + 1
If P = 1 Then Si = i
End If
If Mid(EvaStr, i, 1) = ")" Then
If P = 1 Then
MyEvaluate = MyEvaluate(Mid(EvaStr, 1, Si - 1) & MyEvaluate(Mid(EvaStr, Si + 1, i - 1 - Si)) & Mid(EvaStr, i + 1))
Exit Function
End If
P = P - 1
End If
Next
For i = Len(EvaStr) To 1 Step -1
If Mid(EvaStr, i, 1) = "+" Then
MyEvaluate = MyEvaluate(Mid(EvaStr, 1, i - 1)) + MyEvaluate(Mid(EvaStr, i + 1))
Exit Function
End If
If Mid(EvaStr, i, 1) = "-" Then
MyEvaluate = MyEvaluate(Mid(EvaStr, 1, i - 1)) - MyEvaluate(Mid(EvaStr, i + 1))
Exit Function
End If
Next
For i = Len(EvaStr) To 1 Step -1
If Mid(EvaStr, i, 1) = "*" Then
MyEvaluate = MyEvaluate(Mid(EvaStr, 1, i - 1)) * MyEvaluate(Mid(EvaStr, i + 1))
Exit Function
End If
If Mid(EvaStr, i, 1) = "/" Then
MyEvaluate = MyEvaluate(Mid(EvaStr, 1, i - 1)) / MyEvaluate(Mid(EvaStr, i + 1))
Exit Function
End If
Next
MyEvaluate = Val(EvaStr)
End Function
参考资料:http://bbs.wps.cn/viewthread.php?tid=21818873&highlight=%E8%A1%A8%E8%BE%BE%E5%BC%8F