Bạn có thể làm bạn một vòng lặp For
để kiểm tra mỗi hàng trong ListBox, và làm bất cứ điều gì với các hàng được chọn. Trong ví dụ này, tôi hiển thị cột thứ hai từ các mục đã chọn trong hộp danh sách lstLocations. (Đánh số cột bắt đầu bằng số không.)
Private Sub cmdShowSelections_Click()
Dim lngRow As Long
Dim strMsg As String
With Me.lstLocations
For lngRow = 0 To .ListCount - 1
If .Selected(lngRow) Then
strMsg = strMsg & ", " & .Column(1, lngRow)
End If
Next lngRow
End With
' strip off leading comma and space
If Len(strMsg) > 2 Then
strMsg = Mid(strMsg, 3)
End If
MsgBox strMsg
End Sub
Lưu ý Tôi cho rằng bạn muốn các mục đã chọn từ hộp danh sách. Nếu bạn muốn tất cả mục, được chọn hay không, bạn có thể sử dụng .ItemData
làm @DavidRelihan suggested. Tuy nhiên, trong trường hợp đó, bạn có thể lấy chúng từ hộp danh sách .RowSource
.
Đừng quên rằng bạn có thể có hộp danh sách chọn nhiều và sử dụng thuộc tính Đã chọn nếu không gian trên biểu mẫu trở thành vấn đề. – Fionnuala