我创建了一个带有两个具有多个选项的列表框的用户窗体。
我有一个按钮设计为“GO !!”
现在,我有一个代码,它的工作方式是,你单击列表框1(例如:德国是Location1,它过滤位置) 同样,如果您选择了Listbox2(例如,位置2中的USA,它会过滤位置)
我想有一个代码,这样两个列表框应该相互链接并通过按钮访问。
对于Eg。如果我从Listbox1中单击“USA”。来自Listbox2的“德国”,我点击“GO”,它应该显示美国的结果;我的表2中有德国。
此外,如果我没有选择Listbox2,那么它应该只显示listbox1的结果,反之亦然。
以下是我用于listbox1的代码。 我更改了第二个列表框的列表框名称和具有相同代码的列号。
Private Sub DoFilter1()
Dim ws As Worksheet
Dim strCriteria() As String, i As Integer, arrIdx As Integer
ReDim Preserve strCriteria(0 To arrIdx)
arrIdx = 0
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) Then
ReDim Preserve strCriteria(0 To arrIdx)
strCriteria(arrIdx) = Me.ListBox1.List(i)
arrIdx = arrIdx + 1
End If
Next i
Set ws = Sheets("Result")
If arrIdx = 0 Then
ws.UsedRange.AutoFilter
Else
ws.Range("A:P").AutoFilter Field:=12, Criteria1:=Array(strCriteria), Operator:=xlFilterValues
End If
End Sub
有人可以建议我,如何将它们链接起来并通过按钮访问。任何领导都会有所帮助。
这就是我的用户形态的样子。我想从列表中选中该复选框,然后单击“确定”以显示结果。此外,我应该能够在复选框中选择多个选项。
答案 0 :(得分:2)
请尝试以下代码,这可能会有所帮助。感谢
With ListBox1
For x = 0 To .ListCount - 1
If .Selected(x) Then
temp = temp & Chr(10) & .List(x)
End If
Next
End With
With ListBox2
For x = 0 To .ListCount - 1
If .Selected(x) Then
temp = temp & Chr(10) & .List(x)
End If
Next
End With
MsgBox temp & " is selected"