【发布时间】:2017-02-09 01:35:41
【问题描述】:
感谢您来到这个帖子。
我有什么:
-A:G 行带有自动过滤器的报告
我需要什么:
-如果特定列上有过滤器,则取消过滤特定列的间接代码。
-在下面运行我的代码会取消过滤整个 A:G 范围。
-在这种情况下,我只希望“F”未过滤,如果过滤了其他过滤器,则不理会它们。
With Sheets("DATA")
If .Range("F1").AutoFilter = True Then
ActiveSheet.Range("$A$1:$G$59826").AutoFilter Field:=6
Else
End If
End With
非常感谢任何和所有想法!非常感谢!
【问题讨论】:
-
您的代码对我来说看起来不错,我也对其进行了测试,当我尝试它时,它完全按照您的要求进行,从单个字段中删除自动过滤器。
-
当我运行代码时,它会完全删除自动过滤器。
-
但是,它也会删除其他已经过滤的字段。因此,如果它们被过滤,自动过滤器将在 B 列和 C 列中重置。我实际上回答了我自己的问题,但我没有足够的代表来回答它。代码如下:Addr = Split(ActiveSheet.UsedRange.Address, "$") lastRow = Addr(UBound(Addr)) For r = lastRow To 1 Step -1 If Len(Cells(r, "A").Value)然后 lastRow = r Exit For End If Next ActiveSheet.Range("$A$1:$G" & lastRow).AutoFilter Field:=6
-
附带说明,如果任何过去或现在的答案已经回答了您的问题,请务必通过单击它们旁边的复选标记来接受它们。就是这样:)。
标签: excel vba autofilter