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中所有被选中的项
展开
 我来答
鱼木混猪哟
高粉答主

2015-12-09 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33681

向TA提问 私信TA
展开全部
利用循环,从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
赛纳行星
2008-12-26 · 超过16用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:34.6万
展开全部
打开它的MultiSelect属性 可以选择多个项啊
那你遍历所有选中项,再删除不就可以了?
我的是C# 这是思路,代码就不贴了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周胜亿jN
2008-12-26 · TA获得超过175个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:252万
展开全部
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baieeq2008
2008-12-26 · 超过14用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:30.4万
展开全部
没看明白你的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式