如何在ListView(VBA)中找出所选复选框/项目的数量

时间:2016-07-01 14:45:21

标签: vba excel-vba listview checkbox excel

有没有人知道如何在ListView中找到所选项目的数量,特别是在VBA中有复选框?

我的方法如下。当我单击此ListView中的复选框时,应用程序必须检查所选项是否超过三个,然后抛出错误消息。

Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
    If checked items > 3 then
         //Error message
    Else
         //continues
    End If
End Sub

2 个答案:

答案 0 :(得分:1)

您需要遍历list items并查询Checked属性。

Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
' Returns the number of selected items.
Dim li As ListItem  ' Used to loop over all items.
Dim c As Integer    ' Used to count selected items.

    ' Loop over each item.
    For Each li In ListView1.ListItems

        ' Increase count if selected.
        If li.Checked = True Then c = c + 1
    Next

    ' Inform user.
    MsgBox c, vbInformation, "Selected Items"
End Sub

修改

仅当您的列表框使用复选框时,Checked属性才有效。在所有其他情况下,使用selected属性。来自MSDN

  

此属性仅在CheckBoxes属性中有用   ListView控件将包含的项设置为true。您可以使用   此属性用于确定用户是否已检查该项目   在运行时通过代码。确定要检查的所有项目   在ListView控件中,您可以使用CheckedItems属性。采取   检查项目时的操作,您可以创建一个事件处理程序   用于ListView控件的ItemCheck属性。

答案 1 :(得分:0)