如何在Excel工作表中获取VBA列表字段的多个值?

时间:2017-09-26 07:57:02

标签: excel vba excel-vba

对于Excel查询工具,我需要从我在Excel工作表(不是用户表单)上的“开发人员工具>插入>表单控件元素”粘贴的多选列表字段中获取所有选定值。

My list field

2 个答案:

答案 0 :(得分:1)

您可以使用此VBA方法存储在字符串中选择的所有值(您可以根据需要调整代码)。为了执行代码,您需要将以下内容分配给列表框宏或工作表中的其他形状。

Sub ListBoxSelected()
    Dim i As Long
    With ActiveSheet.ListBoxes("List Box 1")
        For i = 1 To .ListCount
            If .Selected(i) Then
                allselected = Range("A" & i).Value & ", " & allselected
            End If
        Next i
        MsgBox "Selected: " & allselected 'you can adjust this part to do what you want with selected values
    End With
End Sub

enter image description here

答案 1 :(得分:0)

请看一下这个链接。

http://www.fontstuff.com/access/acctut18.htm

我认为你需要做这样的事情。 。 。

For Each varItem In Me.lstOffice.ItemsSelected
    strOffice = strOffice & ",'" & Me.lstOffice.ItemData(varItem) _
    & "'"
Next varItem

如果列表框包含日期列表:

For Each varItem In Me.lstBirthDate.ItemsSelected
    strBirthDate = strBirthdate & ",#" &
    Me.lstBirthDate.ItemData(varItem) & "#"
Next varItem

请注意,单引号已被哈希标记替换(标记为红色)。生成的IN()子句看起来像这样:

在哪里tblStaff。[BirthDate] IN(#9/27/1950#,#2/7/1968#,#6/19/1977#)

如果列表框包含数字列表:

For Each varItem In Me.lstID.ItemsSelected
    strID = strID & "," & Me.lstID.ItemData(varItem)
Next varItem