dim kk as string
dim hh as integer
kk="3+2*1"
如果将kk算出值给hh
也就是程序执行了kk中内容,最好不要用分解字符串取算式的方式,
而是直接执行所得.

解决方案 »

  1.   

    1、堆栈
    数据结构书
    2、方在sql server 中
    declare @sql varchar(100)
    select @sql='select 3+2*1'
    exec(@sql)
      

  2.   

    菜单"工程/引用/Microsoft Script Control 1.0" Private Sub Command1_Click()
        Dim s As String, Scpt As New ScriptControl
        
        Scpt.Language = "VBScript"
        MsgBox Scpt.Eval("3+2*1")
    End Sub
      

  3.   

    使用ScriptControl:
    http://rookscape.com/vbgaming/tutBQ.php
      

  4.   

    完整方法:
    首先在工程中添加一个Class Module,然后在里面加入一句代码:
    Public k1 As Integer
    然后在工程中加入Microsoft Script Control控件,在窗体中加入一个Microsoft Script Control控件和一个Button:
    Private Sub Command1_Click()
        Dim a(1)
        Dim shar As New Class1
        
        ScriptControl1.AddObject "sh", shar
        ScriptControl1.AddCode "Function Main(x)" & vbCrLf & "kk=3+2*1" & vbCrLf & "sh.k1 = kk " & vbCrLf & "End Function"    ScriptControl1.Run "main", a
        Debug.Print shar.k1
    End Sub点击Button1得到结果