例如:
dim a,b,c as integer
dim br as boolean
dim symbol as stringif br = true then
   symbol = "+"
else
   symbol = "-"
end ifc=a & symbol & b无法求解c的值(得出的结果为"a+b",变成字符串了)
我的问题就是例子中的symbol如何才能真正转化成有意义的运算符???????

解决方案 »

  1.   

    f br = true then
       c=a+b
    else
       c=a-b
    end if
      

  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 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 "msgbox (1+2)*3/4"
        ExecuteLine "dim a as string"
        ExecuteLine "a = ""dd"""
        ExecuteLine "msgbox a"
    End Sub
      

  3.   

    dim a,b,c as integer
    dim br as boolean
    dim symbol as stringif br = true then
       c=a+b
    else
       c=a-b
    end if
      

  4.   

    hi,cuizm(射天狼) 你好!
    首先非常感谢你的支持和帮助,我试了你给出的例子运行无误,但是我用变量()替换你例子中的数字却无法运行,不知是何原因???
      

  5.   

    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 i as long ,j as long "
        ExecuteLine "i = 1:j=3"
        ExecuteLine "msgbox i + j"
        ExecuteLine "msgbox (1+2)*3/4"
        ExecuteLine "dim a as string"
        ExecuteLine "a = ""dd"""
        ExecuteLine "msgbox a"
    End Sub