ElseIf Text1.Text > form2!Text1(1).Text And Text1.Text <= form2!Text1(1).Text + form2!Text1(2).Text Then
Text2.Text = "OOXX"

解决方案 »

  1.   

    条件不符合的话,当然会不执行如果是比较值,改一下试试ElseIf Val(Text1.Text) > Val(form2!Text1(1).Text) And Val(Text1.Text) <= Val(form2!Text1(1).Text) + Val(form2!Text1(2).Text) Then
    Text2.Text = "OOXX"
      

  2.   

    Text1.Text  以后像这样的字符类型的数据比较前,记得转换数据类型
     前面都加val函数,具体你自己加吧,我加了一个给你最例子
      ElseIf val(Text1.Text) > form2!Text1(1).Text And Text1.Text <= form2!Text1(1).Text + form2!Text1(2).Text Then
    Text2.Text = "OOXX"
      

  3.   

    是比较值,而且这里面的值都是整数。我照着两位说的改了下可是还是不行Private Sub Cmdshow_Click()
    If Val(Text1.Text) <= Val(form2!Text1(1).Text) Then
    Text2.Text = "OOXX"
    ElseIf Val(Text1.Text) > Val(form2!Text1(1).Text) And Val(Text1.Text) <= Val(form2!Text1(1).Text) + Val(form2!Text1(2).Text) Then
    Text2.Text = "OOXX"
    End If
    End Sub这个是整个的代码,请看看有什么问题么?
      

  4.   

    你再加个
    else
        text2.text="XXXX"
      
    看看,如果加了以后出来XXXX,肯定是你的数据都不满足上两个条件
      

  5.   

    每次都是XXXX可是我的form2!text1(1)-form2!text1(2)全都是2000那么也就是小于2000和2000-4000和大于4000三段阿为什么每次都是直接到最后一段?
      

  6.   

    设置断点,或在前面加上Stop语句,然后运行到了Stop语句后,按F8 单步运行,看它是怎么执行的,如果没执行到If条件里,说明是条件不符合Private Sub Cmdshow_Click()
    Stop
    If Val(Text1.Text) <= Val(form2!Text1(1).Text) Then
    ......
      

  7.   

    最好把各个值打印出来,看看到底是怎么回事Private Sub Cmdshow_Click()
    Debug.Print "Text1=" & Val(Text1.Text)
    Debug.Print "Form2!Text1(1)=" & Val(Form2!Text1(1).Text)
    Debug.Print "Form2!Text1(2)=" & Val(Form2!Text1(2).Text)If Val(Text1.Text) <= Val(Form2!Text1(1).Text) Then
    Text2.Text = "OOXX"
    ElseIf Val(Text1.Text) > Val(Form2!Text1(1).Text) And Val(Text1.Text) <= Val(Form2!Text1(1).Text) + Val(Form2!Text1(2).Text) Then
    Text2.Text = "OOXX"
    Else
    TExt2.Text="XXXX"
    End If
    End Sub
      

  8.   

    又提示我
    编译错误:无效的限定符,去掉stop以后还是提示这个然后去掉了所有的val,第一个判断可以执行,第二个判断就不行了
      

  9.   

    faysky2为了方便说我把代码协成这样Private Sub Cmdshow_Click()
    Debug.Print "Text1=" & Val(Text1.Text)
    Debug.Print "Form2!Text1(1)=" & Val(Form2!Text1(1).Text)
    Debug.Print "Form2!Text1(2)=" & Val(Form2!Text1(2).Text)If Val(Text1.Text) <= Val(Form2!Text1(1).Text) Then
    Text2.Text = "aaa"
    ElseIf Val(Text1.Text) > Val(Form2!Text1(1).Text) And Val(Text1.Text) <= Val(Form2!Text1(1).Text) + Val(Form2!Text1(2).Text) Then
    Text2.Text = "bbb"
    Else
    TExt2.Text="ccc"
    End If
    End Sub运行结果是
    直接点按钮aaa
    然后输入任何数字都是ccc
      

  10.   

    我可以负责任的告诉你,你的问题不是你所列的哪串代码的错
    你的问题在于你的粗心,代码绝对没问题,我自己执行了
    If Val(Text1.Text) <= Val(Form2!Text1.Text) Then
    Text2.Text = "1"
    ElseIf Val(Text1.Text) > Val(Form2!Text1.Text) And Val(Text1.Text) <= Val(Form2!Text1.Text) + Val(Form2!Text2.Text) Then
    Text2.Text = "2"
    Else
    Text2.Text = "3"
    End If我的form2中的text1=20 ,text2=40
    在form1中的text1=11时,text2=1
               text1=22时,text2=2
               text1=66时,text2=3自己好好检查下你的数据吧
      

  11.   

    更新一下
    上面的程序是0,1,2这三个数字是aaa
    3,4,5,6是bbb
    后面的都是ccc可是我设置的范围应该是0-2000,2000-4000,4000-请问这个是怎么回事?而且在下面“立即”窗口中显示
    Form2!Text1(1)=2
    Form2!Text1(2)=3
      

  12.   

    Private Sub Command1_Click()
        Dim i%, strTmp As String
        For i = Text1.LBound To Text1.UBound
            strTmp = strTmp & Text1(i).Text & ","
        Next
        strTmp = Left(Trim(strTmp), Len(Trim(strTmp)) - 1)
        Open App.Path & "\test.txt" For Output As #1
            Print #1, strTmp  '把控件数组的内容写入文件里
        Close #1
        Unload Me
    End Sub
    Private Sub Command2_Click()
    Unload Me
    End Sub
    Private Sub Form_Load()
        Dim i%, strTmp As String, strArr() As String
        Open App.Path & "\test.txt" For Binary As #1
        strTmp = Space(LOF(1))
        Get #1, 1, strTmp
        Close #1
        strArr = Split(strTmp, ",")
        For i = LBound(strArr) To UBound(strArr)
            Text1(i).Text = strArr(i)
        Next
    End Sub这个是我的form2的代码,是我上一个问题,怎么设置20个值并且保存起来的问题的解决方法。
    你看看有没有什么问题?
    急死了
      

  13.   

    而且在下面“立即”窗口中显示
    Form2!Text1(1)=2
    Form2!Text1(2)=3立即窗口都显示数据了,还在这说设置的范围是0-2000,2000-4000,4000-,老大,几天没睡了,你的范围是>=2,2-5,>5才对啊,赶快洗个热水澡,身体要紧