我有一些启用了MultiSelect的ListBox。
有没有办法检查用户是否选择了列表框中的所有项目而没有循环?对于很长的列表,宏需要很长时间来检查循环。
答案 0 :(得分:4)
没有内置属性来检查是否选择了任何内容。循环是最自然的方式。如果列表框中有如此大的数据集使其变慢,则动态检查所选项目计数的另一种方法是实现更改事件并在检查时保留所选项目的计数。
Option Explicit
Dim lSelCount As Long
Private Sub CommandButton1_Click()
If lSelCount > 0 Then
MsgBox "At least one item selected"
Else
MsgBox "No selection"
End If
End Sub
Private Sub ListBox1_Change()
Dim bVal As Boolean
bVal = Me.ListBox1.Selected(ListBox1.ListIndex)
If bVal Then
lSelCount = lSelCount + 1
Else
lSelCount = lSelCount - 1
End If
End Sub