Vba 使用复选框筛选多个条件

Vba 使用复选框筛选多个条件,vba,excel,Vba,Excel,我有一个名为Result的工作表,我用Listbox创建了一个userform 我想过滤并查看特定位置的结果。我总共有7个位置。如果我同时单击多个位置,我应该能够看到结果 为此,我创建了一个带有复选框的列表框,并尝试了如下代码: Private Sub Filter1() Dim Ws As Worksheet Dim strCriteria() As String Dim arrIdx As Integer Dim cBox As Control arrIdx = 0 For Each

我有一个名为Result的工作表,我用Listbox创建了一个userform

我想过滤并查看特定位置的结果。我总共有7个位置。如果我同时单击多个位置,我应该能够看到结果

为此,我创建了一个带有复选框的列表框,并尝试了如下代码:

Private Sub Filter1()

Dim Ws As Worksheet
Dim strCriteria() As String
Dim arrIdx As Integer

Dim cBox As Control

arrIdx = 0
For Each cBox In Me.Controls
    If TypeName(cBox) = "Listbox" Then
        If cBox.Value = True Then
            ReDim Preserve strCriteria(0 To arrIdx)
            strCriteria(arrIdx) = cBox.Caption
            arrIdx = arrIdx + 1
        End If
    End If
Next cBox

Set Ws = ThisWorkbook.Sheets("Result")
If arrIdx = 0 Then
    Ws.UsedRange.AutoFilter
Else
    Ws.Range("A:R").AutoFilter Field:=12, Criteria1:=Array(strCriteria), Operator:=xlFilterValues
End If

End Sub
我在我的列表框中调用了这个过滤器函数。我没有发现任何过滤器功能发生。有谁能帮忙,我哪里错了,需要修改什么-

strCriteria已经是一个数组

尝试
Ws.Range(“A:R”)。自动筛选字段:=12,标准1:=strCriteria,运算符:=xlFilterValues