下标越界了 i,j 都是int For i = 2 To 8
temp.Caption = lbl(2, i).Caption
j = i - 1
While temp.Caption < lbl(2, j).Caption //下标越界
lbl(2, j + 1).Caption = lbl(2, j).Caption
j = j - 1
Wend
lbl(2, j + 1).Caption = temp.Caption
Next i
另:模块 为Public a(8) As Integer
Public lbl(1 To 2, 1 To 8) As Label
Public s As Double
Public pause1 As Boolean
temp.Caption = lbl(2, i).Caption
j = i - 1
While temp.Caption < lbl(2, j).Caption //下标越界
lbl(2, j + 1).Caption = lbl(2, j).Caption
j = j - 1
Wend
lbl(2, j + 1).Caption = temp.Caption
Next i
另:模块 为Public a(8) As Integer
Public lbl(1 To 2, 1 To 8) As Label
Public s As Double
Public pause1 As Boolean
j = i - 1 'j=1
While temp.Caption < lbl(2, j).Caption '从上面下来时,j=1;循环上来时,j=0,下标越界
'因为lbl(1 To 2, 1 To 8) As Label
lbl(2, j + 1).Caption = lbl(2, j).Caption
j = j - 1'j=0
Wend
While temp.Caption < lbl(2, j).Caption //下标越界
lbl(2, j + 1).Caption = lbl(2, j).Caption
j = j - 1
Wendi=2的时候j=i-1=1, 然后j=j-1=0, 再循环到lbl(2, j)的时候, 你说越界不越界?
temp.Caption = lbl(2, i).Caption
j = i - 1
Do While temp.Caption < lbl(2, j).Caption '//下标越界
lbl(2, j + 1).Caption = lbl(2, j).Caption
j = j - 1
If j < 1 Then Exit Do
Loop
lbl(2, j + 1).Caption = temp.Caption
Next i
For i = 2 To 8
temp.Caption = lbl(2, i).Caption
j = i - 1
Do While (i > 0)
If (temp.Caption < lbl(2, j).Caption) Then
lbl(2, j + 1).Caption = lbl(2, j).Caption
Else
Exit Do
End If
j = j - 1
Wend
lbl(2, j + 1).Caption = temp.Caption
Next i