在if语句
if d = 5 then  ...end if
对于if后的d = 5 ,可不可以做到用text1.text输入d = 5,引入if ... then 中?

解决方案 »

  1.   

    if text1.text="5" then

    if val(text1.text)=5 then
      

  2.   

    if trim(text1.text)="5" then 
      

  3.   

    if text1.text="d=5" then
      

  4.   


    非常感谢各位的解答我的问题没有描述清楚,我的实际意思是在text1 中输入一个表达式,这个表达式是不确定的就是说,可能是 d = 5 ,也可能是 d = 6 、 d = 7 ,或者 a = 8然后在过程的if 块中使用text中输入的表达式。
    if 引用text输入的表达式 then   ... end if 
    对于这个表达式的引用 ,也可以做到用两个textbox或者其他方法,问题是怎么做到动态引入?补充:这里的操作不是数据库查询,排除sql
      

  5.   

    类似于这样:
    '⑴用法一
    If AdvaJudge(Text1.Text) Then
    '   ..............
    Else
    '   .............
    End If
    '⑵用法二,跟⑴等效
    If AdvaJudge(Text1.Text) = True Then
    '   ..............
    Else
    '   .............
    End If
    '⑶用法三
    If Not AdvaJudge(Text1.Text) Then
    '   ..............
    Else
    '   .............
    End If
    '
    '//////////////////
    Function AdvaJudge(strLogic As String)
    '******************
    '   这个就是你需要完成的处理函数
    '******************
    '   ..............
    '   ..............
    End Function
      

  6.   


    你真细心,我们都误会nihaoya的意思了。
      

  7.   


    要达到你这个目的,要对用户的输入做文本分析。挺麻烦的。而且你自己还要做校验,以防用户输入的不对。建议用这个替代的办法:用3个组合框
    (1)第一个组合框用来指定参与比较的变量,只能从下拉列表里选择你指定的那些可用来做比较的变量
    (2)第二个组合框用来输入比较符,> >= < <= <>任选其一
    (3)第三个组合框用来输入用于比较多值,限制只能是数字
      

  8.   

    Private Sub Command1_Click()
    Dim d As Integer
    If IsCompare(Text1, d) Then
        MsgBox "dfd"
    End If
    End Sub
    Private Function IsCompare(value As String, ByRef LeftOper As Integer) As Boolean
    Dim OperPos As Integer
    OperPos = InStr(1, value, "=")
    If OperPos = 0 Then Exit Function
    Dim RightOper As String
    RightOper = Mid(value, OperPos + 1, Len(value) - OperPos)
    If LeftOper = RightOper Then
        IsCompare = True
    Else
        IsCompare = False
    End If
    End Function
      

  9.   


    非常感谢: lsztzccby Chen8013 slowgrace再请教一下,在自编函数中,LeftOper可以动态引入么?如变量不为d时的情况,查了一下资料,VB没有宏替换, 没用过vbscript,多谢了