i的下限大于上限导致错误,试试就知道了:
Private Sub Command1_Click()
On Error Resume Next
Dim i As Integer
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then List1.RemoveItem i: MsgBox "i=" & i & vbCrLf & "list1.listcount-1=" & List1.ListCount - 1
Next
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 5
List1.AddItem String(5, Chr(i + 64))
Next
End Sub
所以,忽略错误也可以:
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 5
List1.AddItem String(5, Chr(i + 64))
Next
End Sub
Private Sub Command1_Click()
On Error Resume Next
Dim i As Integer
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then List1.RemoveItem i
Next
End Sub
我用:
Private Sub Command1_Click()
'For i = List1.ListCount - 1 To 0 Step -1
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then List1.RemoveItem i
Next
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 5
List1.AddItem String(5, Chr(i + 64))
Next
End Sub