我把一条语句放在字符串类型的变量中,如str1="3+5*2",我如何运行str1中的语句,并得到执行结果?谢谢各位

解决方案 »

  1.   

    http://dev.csdn.net/article/26/26383.shtm
      

  2.   

    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 LongPrivate Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
        ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
    End Function
    Sub calc(ByVal x As String)
    Dim result
    ExecuteLine "dim x as double"
    ExecuteLine "x= " & x
    ExecuteLine "clipboard.settext x"
    result = Clipboard.GetText
    MsgBox x & "=" & result
    Set result = Nothing
    End SubPrivate Sub Command1_Click()
    calc Text1
    End SubPrivate Sub Form_Load()
    Text1.Text = "1+2*3-4/5"
    End Sub
      

  3.   

    各位帮忙呀,dongge2000(秋日私语:非[版务].灌!) 的方法能实现功能,但是不能编译呀,编译后要vba6.dll我找到了,和可执行程序放在一起,可是总是内存错误!
      

  4.   

    如果有数据库ADO支持,可以使用 select "3+2*5" 来得到答案
    我自己做过一个计算程序,分析起来是比较复杂的,能够支持多级括号的四则运算。
    还有一个OBJECT引用也可以解决,但忘记在哪里,你可以搜索一下这个引用的方法,搜索单词用
    “计算”,“表达式”来试试。