在vb里面有什么函数能让一个算式进行计算
比如我有一个变量
a="(" + sp1 + "-" + sp2 + ")" + "*" + sp3我想msgbox(a),显示(sp1-sp2)*sp3的值 
应该怎么写
在asp中有一个execute的函数可以实现,不知道vb中有没有,要是没有,那应该如何实现?

解决方案 »

  1.   

    Option Explicit
    Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPublic Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
        ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
    End FunctionPrivate Sub Command1_Click()
        ExecuteLine "Dim X As Long, Y As Long"
        ExecuteLine "x = 2"
        ExecuteLine "y = 3"
        ExecuteLine "msgbox " & Text1.Text
    End SubPrivate Sub Form_Load()
        Text1.Text = "x+y"
    End Sub
      

  2.   

    VB 中没有,不过可以用 Script 控件,在 Script 中执行。
    例如
       Me.ScriptControl1.AddCode "sp1=3"
       Me.ScriptControl1.AddCode "sp2=1"
       Me.ScriptControl1.AddCode "sp3=4"
       MsgBox Me.ScriptControl1.Eval("(sp1-sp2)*sp3")
      

  3.   

    引用script control typelib 1.0
      

  4.   

    execute "a=(" & sp1 & "-" & sp2 & ")" & "*" & sp3
      

  5.   

    SoHo_Andy在写啥俺看不懂,也看不明白~~
    shwen兄弟的法子看起来行,但跟俺的不太适用啊~
    俺那个是这样的
    op1="+"
    op2="*"
    str1=1
    str2=2
    str3=3
    我希望a的值=str1+str2的和*str3
    所以
    a="("+str1+op1+str2+")"+op2+str3这个,怎么计算得出a的值
      

  6.   

    你的文本框中输入(sp1-sp2)*sp3在程序中给三个变量赋值
    然后
    ExecuteLine "msgbox " & Text1.Text
    就有结果了就是这个意思
    缺点是没有返回值,你的要求还是达到了的
      

  7.   

    自己编写一个引擎。
    [email protected]
      

  8.   

    a=(val(str1)+val(str2))* val(str3)
    msgbox a
      

  9.   

    各位,a是一个字符串变量
    a="("+str1+op1+str2+")"+op2+str3但这个字符串变量里面的字符串实际上是个算式,有什么法子能让a执行吗?
      

  10.   

    可以列举所有情况,如:
    if a=a="("+str1+++str2+")"+*+str3 then b=(val(str1)+val(str2))* val(str3)
    if a=a="("+str1+-+str2+")"+*+str3 then b=(val(str1)-val(str2))* val(str3)
      

  11.   

    我这是个循环列出几个数通过+-*/()组成的各种算式的值
    用列举不现实,因为算式太多了~另外:shwen兄弟,script control 中AddCode能不能加入符号啊