vba中listbox如何同时删除选择的多行
listbox的一个属性是MultiSelect属性,当值为2时listbox可以选择多列我现在可以实现一行一行的删除,能有办法把选择的行同时删除吗?下面是我的代码Pri...
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中所有被选中的项 展开
我现在可以实现一行一行的删除,能有办法把选择的行同时删除吗?
下面是我的代码
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中所有被选中的项 展开
4个回答
展开全部
利用循环,从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'Selected属性为判断listbox是否被选中
ListBox2.RemoveItem (i)'removeitem为移除改list
i = i - 1
End If
End If
Next
End Sub
展开全部
打开它的MultiSelect属性 可以选择多个项啊
那你遍历所有选中项,再删除不就可以了?
我的是C# 这是思路,代码就不贴了。
那你遍历所有选中项,再删除不就可以了?
我的是C# 这是思路,代码就不贴了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看明白你的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询