Private Sub Command1_Click()                     '开始
Timer1.Enabled = True
End SubPrivate Sub Command2_Click()                     '停止
Static i As Integer
Timer1.Enabled = False
Label2(i) = Label1.Caption
i = i + 1
If i = 7 Then Command1.Enabled = False
End Sub
Private Sub Command3_Click()                     '重置
Label1.Caption = "00"
For i = 0 To 6
Label2(i).Caption = ""
Next i
Command1.Enabled = True
End SubPrivate Sub Form_Load()
Label1.FontSize = 145
Timer1.Enabled = False
End SubPrivate Sub Timer1_Timer()                         '随机数
i = Int(Rnd * 37) + 1
Label1.Caption = Format(i, "00")
End Sub
我这样运行后就弹出错误  说控件数组元素'7'不存在
  我想请教的是 在重置代码里面怎么改可以让我重新开始新的一轮

解决方案 »

  1.   

    Private Sub Command3_Click()                     '重置 
    Label1.Caption = "00" 
    i=0
    For i = 0 To 6 
    Label2(i).Caption = "" 
    Next i 
    Command1.Enabled = True 
    End Sub 这个i和上面的静态变量i应该没什么关系
    所以静态变量不要起这样没有意义的名字
    最好也别和别的变量重名
      

  2.   

    把你的 Private Sub Command2_Click() 中的:
    Static i As Integer移到通用节中,写成:
    Dim i As Integer然后:
    Private Sub Command1_Click()
        Timer1.Enabled = True
        i = 0
    End Sub 
      

  3.   

    这个也得改一下:
    Private Sub Timer1_Timer()
        Dim i%
        i = Int(Rnd * 37) + 1 
        Label1.Caption = Format(i, "00") 
    End Sub多看一下,觉得楼主的代码之乱.........
      

  4.   

    谢谢指教,可是我要的效果是: 我先单击开始,然后第一次点停止按钮时label1的随即数显示在label2(0)里面,再点开始摇,再次点击停止按钮时label1的随即数显示在label2(1)里面,label1的随即数依次显示在label2(0)——label2(6)里。当出现label(6)的数字时,开始按钮不可用,我单击重置按钮后开始按钮可用,label1的数字还原成"00",label2(0)——label2(6)为空,但是再开始摇的时候单击停止按钮后就提示“控件数组元素'7'不存在”。我想请教如何才能再依次显示在label2(0)——label2(6)里面,即使得i又从0开始,谢谢!
      

  5.   

    先照2楼、3楼的做。
    但 Command1_Click() 用你原来的代码(即 i = 0 不要)。这个过程改一下:
    Private Sub Command3_Click()
      Label1.Caption = "00" 
      For i = 0 To 6 
        Label2(i).Caption = "" 
      Next i 
      Command1.Enabled = True
      i = 0
    End Sub