vba中listbox如何同时删除选择的多行

listbox的一个属性是MultiSelect属性,当值为2时listbox可以选择多列
我现在可以实现一行一行的删除,能有办法把选择的行同时删除吗?

下面是我的代码
Private Sub ColDelCmd_Click()
Dim i As Integer
Dim Index As Integer
Index = ListBox2.ListIndex
Debug.Print Index

If Index >= 0 Then
ListBox2.RemoveItem (Index)
Else: MsgBox "未选择正确的列!", 32, "提示"
End If

End Sub
就是说在我现在的代码下
点一下ColDelCmd,然后可以删除ListBox2中被选中的项
但是我如果选择多行的话只能删除有焦点的(setfocus)的项

我要的结果是当点击ColDelCmd,删除ListBox2中所有被选中的项

利用循环,从listbox第一个list开始对是否选中进行判断,如果是选中状态,就从listbox中移除这一条。详细代码如网友回答:
Private Sub ColDelCmd_Click()
For i = 0 To ListBox2.ListCount - 1
If i < ListBox2.ListCount Then
If ListBox2.Selected(i) Then'Selected属性为判断listbox是否被选中
ListBox2.RemoveItem (i)'removeitem为移除改list
i = i - 1
End If
End If
Next
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-26
打开它的MultiSelect属性 可以选择多个项啊
那你遍历所有选中项,再删除不就可以了?
我的是C# 这是思路,代码就不贴了。
第2个回答  2008-12-26
Private Sub ColDelCmd_Click()

For i = 0 To ListBox2.ListCount - 1
If i < ListBox2.ListCount Then
If ListBox2.Selected(i) Then
ListBox2.RemoveItem (i)
i = i - 1
End If
End If
Next

End Sub本回答被提问者采纳
第3个回答  2008-12-26
没看明白你的问题
相似回答