Private Sub Command1_Click()
Dim i, j As Long
                For i = 1 To 100
                
                If 1 < i <= 30 Then
                Label1.Caption = "第一阶段……"
                Else
                If 30 < i <= 65 Then
                Label1.Caption = "第二阶段……"
                Else
                If 65 < i <= 100 Then
                Label1.Caption = "第三阶段……"
                End If
                End If
                End If
                Label2.Caption = i
                For j = 1 To 10000
                DoEvents
                Next
                Next
End Sub
为什么这段程序,点击按钮label1.caption总是显示第一阶段?而且label2.caption能显示1到100?

解决方案 »

  1.   

    条件写法错误,要按1楼的写法: i>1 and i<=30
      

  2.   

    我试了下,不会啊每次赋值的时候下面加一句,看看
    Label1.Caption = "第一阶段……" 
    Label1.refresh
      

  3.   

    不会变通,人家说30你就只改一个啊。。其他的也得改Private Sub Command1_Click()
    Dim i, j As Long
                    For i = 1 To 100                If i > 1 And i <= 30 Then
                    Label1.Caption = "第一阶段……"
                    Else
                    If i > 30 And i <= 65 Then
                    Label1.Caption = "第二阶段……"
                    Else
                    If i > 65 And i <= 100 Then
                    Label1.Caption = "第三阶段……"
                    End If
                    End If
                    End If                Label2.Caption = i
                    For j = 1 To 10000
                    DoEvents
                    Next
                    Next
    End Sub
      

  4.   

    两点意见:
    1.label赋值内容变化后更新。
    2.用select case不是更简单一些?这么简单的三个判断条件写了好几层判断,很麻烦。
    还有一点,不知道LZ的真正编码结构是什么样的,不同级别的最好能区分出来,按你现在写的风格,少写个end if都得查半天才知道漏的是哪个。
      

  5.   

    If 1 < i <= 30 Then 
    这错了。这样判断永远满足后面。