无法使用数组自动过滤具有多个条件的列

时间:2017-07-25 04:46:01

标签: excel vba excel-vba

我正在尝试使用多个条件自动过滤列。自动过滤器只能处理一个数据,但不能处理多个数据。

For lb1fil = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lb1fil) = True Then
    strarray = Chr(34) & ListBox1.list(lb1fil) & Chr(34) & "," & strarray
End If
Next
Debug.Print Left(strarray, Len(strarray) - 1)
Worksheets("Result").Activate
Range("L4:L2000").AutoFilter Field:=1, Criteria1:=Array(Left(strarray, 
Len(strarray) - 1)), Operator:=xlFilterValues

如果有任何替代方式或我错过的东西,请告诉我。

我在搜索SO寻求解决方案,但没有一个正在运行。

1 个答案:

答案 0 :(得分:0)

我在RND之后得到了答案,(感谢SO)

For lb1fil = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lb1fil) = True Then
    'strarray = Chr(34) & ListBox1.list(lb1fil) & Chr(34) & ", " & strarray
    strarray = strarray & "," & ListBox1.list(lb1fil)
End If
Next
 Debug.Print Right(strarray, Len(strarray) - 1)
 strlen = Right(strarray, Len(strarray) - 1)
Debug.Print strlen

ary = Split(strlen, ",")

Worksheets("Result").Activate
Range("L4:L2000").Select
Selection.AutoFilter
Range("L4").Activate
ActiveSheet.Range("$L$4:$L$2000").AutoFilter Field:=1, Criteria1:=Array( _
    ary), Operator:=xlFilterValues

我已经使用split添加了数组,并且它有效。

请注意,解决方案来自另一个问题,解决方案不是我的。所以想分享一下。感谢