如:a+b(c+d*f)+e-g= 计算结果(包括四则运算)----我用来对EXCEL表格的列进行计算(也就是公式)如仅实现普通数字的运算,我也会结帖给分 ,谢谢 !:》
reallirui:
QQ:975744288
msn:[email protected]
reallirui:
QQ:975744288
msn:[email protected]
解决方案 »
- 用ACCESS2007如何打开有工作组(MDW)文件加密的ACCESS2003版的数据库文件
- vb如何使曲线做到放大缩小???
- 修改了ACCESS后如何实时的反映出来?
- !高分!ado联接access显示、打开图片(在线等) 200分
- 我也来发出另一种调子帖子:★★看看《〈日本人〉》是怎么做的,我们该怎么面对?★★
- 只有188分了,冒险一问!!!!! Active Report 打印问题
- 关于VB连接SQL远程数据库
- 回答就有100!vb连结oracle8
- 请问哪位朋友有用vb开发ftp的例子,能给小弟参考一下或贴一下
- 急救病人---危在旦夕了!!快揪我一把(Visual basic)
- 【散分帖】13333+2222,不错的数字,特此散分~~~~~~~~~~~~~~~~~
- 如何使用listview 里的项目间距变小
Option Explicit Private Function Eval(ByVal s As String) As Variant
Dim Lb As Long, Rb As Long
Lb = InStrRev(s, "(")
While Lb <> 0
Rb = InStr(Lb, s, ")")
s = Replace(s, Mid$(s, Lb, Rb - Lb + 1), CStr(Eval(Mid$(s, Lb + 1, Rb - Lb - 1))))
Lb = InStrRev(s, "(")
Wend
If IsNumeric(s) Then
Eval = Val(s)
Else
Dim High As Long
High = InStr(s, "+")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) + Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "-")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) - Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStr(s, "*")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) * Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "/")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) / Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "%")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) Mod Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "!=")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) <> Eval(Right$(s, Len(s) - High - 1))
Exit Function
End If
High = InStrRev(s, "==")
If High <> 0 Then
Eval = (Eval(Left$(s, High - 1)) = Eval(Right$(s, Len(s) - High - 1)))
Exit Function
End If
End If
End Function '主函数
Public Sub main()
Dim Expression As String
Expression = "149.5+((100+(6+(90-5*2*2)*4+(1-1))+202)%441)*2*2+0.88+150.5"
MsgBox Eval(Expression)
End Sub
Evals.Language = "VBScript"
MsgBox Evals.Eval("1+2*(3+1)")