使用 ItemsSelected 属性可以返回隐藏 ItemsSelected 集合的只读引用。该隐藏集合可用于访问多选列表框控件中选定行的数据。
expression.ItemsSelected
expression 必需。返回“应用于”列表中的一个对象的表达式。
ItemsSelected 集合与其他集合不同之处在于,它是 Variant 型的集合,而不是对象的集合。每个 Variant 是一个整型的索引,指向列表框或组合框中选定的行。
将 ItemsSelected 集合与 Column 属性或 ItemData 属性结合使用,可以从列表框或组合框中选定的行检索数据。可以使用 For Each...Next 语句列出 ItemsSelected 集合。
例如,如果窗体上有一个“雇员”列表框,则可以列出 ItemsSelected 集合,并使用控件的 ItemData 属性来返回列表框中每个选定行的绑定列值。
ItemsSelected 集合没有方法,只有两个属性:Count 和 Item 属性。
下面的示例打印“联系人”窗体上“名称”列表框中每个选定行的绑定列值。若要试用该示例,请创建列表框,根据需要设置其 BoundColumn 属性并将 MultiSelect 属性设为“简单”或“展开的”。然后再切换到“窗体”视图,在列表框中选择几行,并运行以下代码:
Sub BoundData()
Dim frm As Form, ctl As Control
Dim varItm As Variant
Set frm = Forms!Contacts
Set ctl = frm!Names
For Each varItm In ctl.ItemsSelected
Debug.Print ctl.ItemData(varItm)
Next varItm
End Sub
下一个示例使用相同的列表框控件,但打印列表框中每个选定行每一列的值,而不只是绑定列中的值。
Sub AllSelectedData()
Dim frm As Form, ctl As Control
Dim varItm As Variant, intI As Integer
Set frm = Forms!Contacts
Set ctl = frm!Names
For Each varItm In ctl.ItemsSelected
For intI = 0 To ctl.ColumnCount - 1
Debug.Print ctl.Column(intI, varItm)
Next intI
Debug.Print
Next varItm
End Sub