首页 > 解决方案 > 如何循环并捕获访问列表框中的每个选定项目?

问题描述

我试图遍历一个多选列表框并将每个值传递给一个运行存储过程的函数,我只是不知道该怎么做。

这是我所拥有的:

Private Sub cmdBegin_Click()
Dim i As Integer
Dim selected(89) As String
Dim item As Variant

With Me.lstSmartSheet
    For Each item In selected()
        If Me.lstSmartSheet.selected(item) Then
            Call DataExport(item)
        Next
End With

End Sub

标签: vbaloopsms-access

解决方案


您可以迭代ItemsSelected属性,该属性是与列表框控件中选定的项目相对应的索引集合。

然后,您可以使用每个索引从ItemData集合中获取适当的项目。

例如:

Private Sub cmdBegin_Click()
    Dim i
    With Me.lstSmartSheet
        For Each i In .ItemsSelected
            Call DataExport(.ItemData(i))
        Next i
    End With
End Sub

这里,在For Each循环中,变量变量i被连续地分配给所选项目的索引集合中的每个索引。


推荐阅读