我正在尝试根据数字进行自动过滤。我可以通过转换为字符串来搜索列匹配,但过滤会变得更加棘手。
我设置了代码,所以如果要过滤的列是数字,它会遍历它们并将包含“xxx”的任何内容添加到数组中(每个的第一个实例)。然后我使用这个数组作为我的自动过滤器的标准。
问题来自autofilter命令。如果我只使用数组作为条件,它只会按数组中的最后一项进行过滤。如果我将xlFilterValues添加为运算符,则不会得到任何结果。
如何正确地使数组(变量)作为标准?我也尝试过高级过滤器,但是遇到了运行时错误。
由于
相关代码:
If isInCol Then ' filter the table by the selected col; Use Range Sort
With ActiveSheet
If sortField = 10 Or sortField = 21 Then ' sort by a searched array
' sort through values, add matching to array
For Each foo In filterColumn
If InStr(CStr(foo.Value), filterText) Then
If arrayCounter = 0 Then
sortKeyNum(arrayCounter) = CDbl(foo.Value)
arrayCounter = arrayCounter + 1
ElseIf foo.Value <> sortKeyNum(arrayCounter - 1) Then
sortKeyNum(arrayCounter) = CDbl(foo.Value)
arrayCounter = arrayCounter + 1
End If
End If
Next foo
ReDim Preserve sortKeyNum(arrayCounter - 1)
currentData.AutoFilter Field:=sortField, Criteria1:=sortKeyNum, Operator:=xlFilterValues ' , VisibleDropDown:=False
' NOTE: ^^^^THIS IS WHERE MY CODE IS FAILING^^^^
Else
currentData.AutoFilter Field:=sortField, Criteria1:=sortKey ' , VisibleDropDown:=False
End If
currentData.Sort key1:=filterColumn, Order1:=sortOrder, Header:=xlYes
End With
End If