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

来源:百度知道 编辑:UC知道 时间:2024/05/24 21:38:30
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

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

打开它的MultiSelect属性 可以选择多个项啊
那你遍历所有选中项,再删除不就可以了?
我的是C# 这是思路,代码就不贴了。

没看明白你的问题