使用 Column 属性可以引用多列组合框或列表框中特定的列或列与行的组合。Variant 型,只读。
expression.Column(Index, Row)
expression 必需。返回“应用于”列表中的一个对象的表达式。
Index 必需,Long 型。范围为 0 到 ColumnCount 属性的设置值减 1 的长整型整数。
Row 可选,Variant 型。范围为 0 到 ListCount 属性值减 1 的整数。
该属性设置只能通过宏或 Visual Basic 来使用,在“设计”视图中不可用,并且在其他视图中均为只读。
用 0 引用第一列,用 1 引用第二列,依此类推。用 0 引用第一行,用 1 引用第二行,依此类推。例如在含有一列客户 ID 和一列客户名称的列表框中,可以使用如下方式引用第二列、第五行的客户名称:
Forms!Contacts!Customers.Column(1, 4)
可以使用 Column 属性将组合框或列表框的内容指定给另一控件,如文本框。例如,若要将文本框的 ControlSource 属性设为列表框第二列中的值,可以使用以下表达式:
=Forms!Customers!CompanyName.Column(1)
如果引用了组合框或列表框中的列,但用户未做选择,则 Column 属性设置将为 Null。可以使用 IsNull 函数来确定是否进行了选择,示例如下:
If IsNull(Forms!Customers!Country)
Then MsgBox "No selection."
End If
注释 若要确定组合框或列表框有多少列,可以查看 ColumnCount 属性设置。
以下示例使用 Column 属性和 ColumnCount 属性来打印列表框中选定的值:
Public Sub Read_ListBox()
Dim intNumColumns As Integer
Dim intI As Integer
Dim frmCust As Form
Set frmCust = Forms!frmCustomers
If frmCust!lstCustomerNames.ItemsSelected.Count > 0 Then
' Any selection?
intNumColumns = frmCust!lstCustomerNames.ColumnCount
Debug.Print "The list box contains "; intNumColumns; _
IIf(intNumColumns = 1, " column", " columns"); _
" of data."
Debug.Print "The current selection contains:"
For intI = 0 To intNumColumns - 1
' Print column data.
Debug.Print frmCust!lstCustomerNames.Column(intI)
Next intI
Else
Debug.Print "You haven't selected an entry in the " _
& "list box."
End If
Set frmCust = Nothing
End Sub