VB6带有字符串变量的公式转换 2C

A=2: B=3: C=5
StrTem="A+B*5+C"
请各位高人指导一下。

5个回答

Dim A,B,C,IntAll As Integer
Dim StrTem As String
A=2: B=3: C=5
StrTem="A+B*5+C"
怎么让 IntAll=A+B*5+C

用ScriptControl

 首先创建一个工程,在工程中加入一个新的类,类名称为Class1,然后在类中加入以下定义 :

Public k1 As Integer
Public a As Integer
Public b As Integer
Public c As Integer

Public ev As String

在Form1中加入代码:

    Dim shar As New Class1

    'a b c分别为赋值
    shar.a = 4
    shar.b = 6
    shar.c = 2

    ScriptControl1.AddObject "sh", shar
    'Text1是用户输入的算式
    Text1.Text = "a + b - c"

    ScriptControl1.AddCode "Function Main()" & _
        "dim a" & vbCrLf & "dim b" & vbCrLf & "dim c" & vbCrLf _
        & " a = sh.a" & vbCrLf & " b = sh.b " & vbCrLf & "c = sh.c" & vbCrLf _
        & vbCrLf & "kk= " & Text1.Text & vbCrLf & "sh.k1 = kk " & vbCrLf & "End Function"

    ScriptControl1.Run "main"
    MsgBox "结果等于:" & shar.k1, , "运算结果"

Script Control支持通过自定义对象与代码交互,通过AddObject方法可以向ScriptControl中加入一个对象(代码中加入了名称为sh的Class1对象),然后在算式中就可以操作sh对象了。

execute执行下代码

 A=2: B=3: C=5:IntAll=0
StrTem="IntAll=A+B*5+C"
execute(strTem)
msgbox IntAll

问题已经解决了,谢谢各位!我是用ScriptControl,代码如下:
StrTem=Replace(StrTem, "A", A)
StrTem=Replace(StrTem, "B", B)
StrTem=Replace(StrTem, "C", C)
再用ScriptControl运算就不会返回0了。
再次谢谢您们的参与。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问