如下代码提示编译错误,缺少数组,看了多次,百思不得其解,请各位高手指点:
Dim a(9) As LongPrivate Sub Form_Load()
    a(0) = 564: a(1) = 78: a(2) = 45: a(3) = 456412
    a(4) = 456: a(5) = 1: a(6) = 45 + 79
    a(7) = 12: a(8) = 1 * 966: a(9) = 65 / 5
    Dim i As Long
    For i = 0 To 9
        Label1.Caption = Label1.Caption & "a(" & CStr(i + 1) & ")" = CStr(a(i)) & ""
               
    Next i
End SubPrivate Sub Command1_Click()
    Dim i As Long, l As Long, a As Long
      For i = 0 To 9
        For l = i To 9
         If a(i) > a(l) Then  '这个地方提示错误"编译错误,缺少数组"
           n = a(i)
           a(i) = a(l)
           a(l) = n
        End If
    Next l
    Print a(i)
    Next i
End Sub

解决方案 »

  1.   

    Dim i As Long, l As Long, a As Long
      

  2.   

    自己在Command1_Click()方法中定义 a as long 了,肯定没数组了.
      

  3.   

    Dim i As Long, l As Long, a As Long 改为
    Dim i As Long, l As Long, n As Long
      

  4.   

    Private Sub Command1_Click()
    Dim i As Long, l As Long, n As Long
    For i = 0 To 9
    For l = i To 9
    If a(i) > a(l) Then '这个地方提示错误"编译错误,缺少数组"
    n = a(i)
    a(i) = a(l)
    a(l) = n
    End If
    Next l
    Print a(i)
    Next i
    End Sub
      

  5.   

    全局变量与局部变量的关系你没有弄明白,你首先定义a为全局长整数组,
    而在Private Sub Command1_Click()过程里你又定义了a长整(非数组),
    这样Private Sub Command1_Click()过程里不再接收全局数组a,只接收
    部分变量长整a,它并非数组,就造成了缺少数组的错误。总结一下:全局变量与局部变量同名的情况下,局部变量屏蔽全局变量,切记。