【发布时间】:2021-08-26 18:59:02
【问题描述】:
我有一个数组,其中包含一些使数组范围无效的单元格。我已经存储了数据以过滤掉受影响的行,但是当在过滤器中替换数组时,它要么过滤所有内容,要么什么都不过滤。
For i = LBound(SOS_array1) To UBound(SOS_array1)
filter1(i) = CStr(SOS_array1(i, 1))
Next i
Sheets("NSR " & NSR1).Select
ActiveSheet.Range("$A$A:$T$T").AutoFilter Field:=4, Criteria1:=Array(Join(filter1, ",")), _
Operator:=xlFilterValues
其中Sos_array1是要过滤为整数的数据,filter1是转换为字符串的数据。
【问题讨论】:
-
当您尝试
Criteria1:=Join(filter1, ",")而不使用Array(时会发生什么? -
正确的是
Criteria1:=filter1因为 filter1 本身就是一个数组 - 请参阅 Range.AutoFilter method 中的示例 -
运行 'Criteria1:=filter1' 不会对工作表应用任何过滤器。 @АлексейР
-
Running Criteria1:=Join(filter1, ",") 也不会对工作表应用任何过滤器。 @托德尔森
-
@Acbischoff 这是因为 Range("$A$A:$T$T") 的地址不正确。