使用 ItemsSelected 屬性可以返回隱藏 ItemsSelected 集合的只讀引用。該隱藏集合可用于訪問多選列表框控件中選定行的數(shù)據(jù)。
expression.ItemsSelected
expression 必需。返回“應用于”列表中的一個對象的表達式。
ItemsSelected 集合與其他集合不同之處在于,它是 Variant 型的集合,而不是對象的集合。每個 Variant 是一個整型的索引,指向列表框或組合框中選定的行。
將 ItemsSelected 集合與 Column 屬性或 ItemData 屬性結合使用,可以從列表框或組合框中選定的行檢索數(shù)據(jù)??梢允褂?For Each...Next 語句列出 ItemsSelected 集合。
例如,如果窗體上有一個“雇員”列表框,則可以列出 ItemsSelected 集合,并使用控件的 ItemData 屬性來返回列表框中每個選定行的綁定列值。
ItemsSelected 集合沒有方法,只有兩個屬性:Count 和 Item 屬性。
下面的示例打印“聯(lián)系人”窗體上“名稱”列表框中每個選定行的綁定列值。若要試用該示例,請創(chuàng)建列表框,根據(jù)需要設置其 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