Private Sub Command4_Click()
On Error GoTo ErrHandle
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "VBScript"
MsgBox sc.Eval(List1.Text), 64, "YE"
Set sc = Nothing
Exit Sub
ErrHandle: '错误处理
MsgBox "程序出错 " & vbCrLf & "错误号: " & Err.Number & vbCrLf & "请输入正确算式! ", vbCritical Or vbOKOnly, "出错" 'Err.Description
End Sub
现在这个代码是我在list中输入“1+2-3+4”然后点击这个Command4那么MsgBox弹出计算结果4
如果我把一个数据用代码表示呢,或用代码表示一个运算方式呢
如我有数据a=16,计算符e(求前面计算结果每位数的和)
如我输入1+a-2e+13e,然后点击Command4,这时的计算方式为1+16-2=15取1和5的和是6,然后+13,计算结果19,取1和9的和10,最后的结果是MsgBox弹出10,这个代码该如何写
On Error GoTo ErrHandle
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "VBScript"
MsgBox sc.Eval(List1.Text), 64, "YE"
Set sc = Nothing
Exit Sub
ErrHandle: '错误处理
MsgBox "程序出错 " & vbCrLf & "错误号: " & Err.Number & vbCrLf & "请输入正确算式! ", vbCritical Or vbOKOnly, "出错" 'Err.Description
End Sub
现在这个代码是我在list中输入“1+2-3+4”然后点击这个Command4那么MsgBox弹出计算结果4
如果我把一个数据用代码表示呢,或用代码表示一个运算方式呢
如我有数据a=16,计算符e(求前面计算结果每位数的和)
如我输入1+a-2e+13e,然后点击Command4,这时的计算方式为1+16-2=15取1和5的和是6,然后+13,计算结果19,取1和9的和10,最后的结果是MsgBox弹出10,这个代码该如何写
'大哥 你的数学有那么烂吗?不会给算术表达式加上括号吗?
x = ((1+a-2)e+13)e
和
x = 1+a-2e+13e
一样吗?
private sub xxx(byval x as string)
如果x是数字?
如果x(e)中的x三位数或以上呢?x是1位数?又或者x(e)的x是个负数,小数呢?
如果x是字符串?
异常怎么抛?
end sub
其他的条件以后再加
strTmp = Replace(strTmp, "a", CStr(a))
strTmp = Replace(strTmp, "e", CStr(e))如果你省略乘号,就需要在替换前将需要补乘号的地方补上。