Private Sub Command1_Click() For i = List1.ListCount - 1 To 0 Step -1 If List1.Selected(i) Then List1.RemoveItem i Next End SubPrivate Sub Form_Load() Dim i As Integer For i = 1 To 5 List1.AddItem String(5, Chr(i + 64)) Next End Sub
list1 的multiselect 设为 1
我用: 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 SubPrivate Sub Form_Load() Dim i As Integer For i = 1 To 5 List1.AddItem String(5, Chr(i + 64)) Next End Sub这样就会出错,请问这是为什么,我感觉我这里有些比较重要的东西没有搞明白。
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 SubPrivate 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
If List1.Selected(i) Then List1.RemoveItem i
Next
End SubPrivate 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()
'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 SubPrivate 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: MsgBox "i=" & i & vbCrLf & "list1.listcount-1=" & List1.ListCount - 1
Next
End SubPrivate 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