清除列表框的选择

时间:2018-07-19 18:56:19

标签: excel-vba

我创建了一个用户表单,该用户表单在提交表单时会清除组合框的所有选择,但是我无法设法清除列表框的选择。

我只能用此代码清除一个选择(如果选择了3个选项,则运行此选项后仍会选择2个)。

Me.ComboBox6.Value = ""
Me.ComboBox7.Value = ""
ListBox1.Selected(ListBox1.ListIndex) = False
ListBox2.Selected(ListBox2.ListIndex) = False
ListBox3.Selected(ListBox3.ListIndex) = False

我尝试循环ListBox行,但是我无法使其工作...

For x = 0 To Me.ListBox2.ListCount - 1
If Me.ListBox2.Selected(x) Then
 ListBox1.Selected(ListBox1.ListIndex) = False   
End If     Next x

我将不胜感激,对此我是新手,正在努力整理简单的表格,但对此(近)作品感到非常高兴。

A。

2 个答案:

答案 0 :(得分:0)

如果仅循环浏览控件,并且ctrl名称为“ ListBox”,则执行某些操作。

Private Sub CommandButton1_Click()
    Dim Ctrl As Control

    For Each Ctrl In UserForm1.Controls
        If TypeName(Ctrl) = "ListBox" Then
            Ctrl.Selected(ListIndex) = False
        End If

    Next Ctrl

End Sub

答案 1 :(得分:0)

一种略有不同的方法

Private Sub CommandButton1_Click()
    Dim Ctrl As msforms.Control

    For Each Ctrl In Me.Controls
        If TypeName(Ctrl) = "ListBox" Then
        If Ctrl.MultiSelect = fmMultiSelectSingle Then
        Ctrl.ListIndex = -1
        Else
        Ctrl.MultiSelect = fmMultiSelectSingle
        Ctrl.ListIndex = -1
        Ctrl.MultiSelect = fmMultiSelectMulti
        End If
        End If
    Next Ctrl

End Sub