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