如何在不更新其他过滤器的情况下自动更新一个过滤器?
How can I automatically update one filter without updating other filters?
我有一个 Excel sheet,在 A 列和 B 列中带有过滤器。我希望开发一个宏,每当这项工作中的数据出现时,它就会自动更新 B 列中的过滤器sheet 已更新,但不会自动更新 A 列中的过滤器。这是我目前拥有的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Range("$A:$B").AutoFilter Field:=2
ActiveSheet.Range("$A:$B").AutoFilter Field:=2, Criteria1:="<>x", _
Operator:=xlAnd
End Sub
正如预期的那样,每当数据更新时,此宏都会更新 B 列中的过滤器,以便自动过滤掉任何包含“x”的单元格。但是,此宏还会自动更新 A 列中的过滤器。这是有问题的,因为如果我已经在 A 列中应用了过滤器,然后插入新行,宏会自动隐藏新行,因为新行不符合 A 列的过滤条件。我希望宏自动更新 B 列中的过滤器而不同时更新 A 列中的过滤器,这样插入新行就不会触发宏立即隐藏这个新的行。
非常感谢任何输入!
我现在找到了一种解决方法,我清除了 A 列中的筛选器,然后在 C 列中添加了公式,这样,如果 A 列中的值满足所需的条件或为空,则这些公式输出 TRUE,并输出否则为假。然后我修改宏如下:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Range("$A:$C").AutoFilter Field:=3
ActiveSheet.Range("$A:$C").AutoFilter Field:=3, Criteria1:="TRUE", _
Operator:=xlOr, Criteria2:=""
ActiveSheet.Range("$A:$C").AutoFilter Field:=2
ActiveSheet.Range("$A:$C").AutoFilter Field:=2, Criteria1:="<>x", _
Operator:=xlAnd
End Sub
此宏现在过滤掉 B 列中显示“x”的行,但也允许插入新行而不立即过滤掉这些行。可能有比这更简单的解决方案,但这似乎至少足以满足我的目的。
我有一个 Excel sheet,在 A 列和 B 列中带有过滤器。我希望开发一个宏,每当这项工作中的数据出现时,它就会自动更新 B 列中的过滤器sheet 已更新,但不会自动更新 A 列中的过滤器。这是我目前拥有的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Range("$A:$B").AutoFilter Field:=2
ActiveSheet.Range("$A:$B").AutoFilter Field:=2, Criteria1:="<>x", _
Operator:=xlAnd
End Sub
正如预期的那样,每当数据更新时,此宏都会更新 B 列中的过滤器,以便自动过滤掉任何包含“x”的单元格。但是,此宏还会自动更新 A 列中的过滤器。这是有问题的,因为如果我已经在 A 列中应用了过滤器,然后插入新行,宏会自动隐藏新行,因为新行不符合 A 列的过滤条件。我希望宏自动更新 B 列中的过滤器而不同时更新 A 列中的过滤器,这样插入新行就不会触发宏立即隐藏这个新的行。
非常感谢任何输入!
我现在找到了一种解决方法,我清除了 A 列中的筛选器,然后在 C 列中添加了公式,这样,如果 A 列中的值满足所需的条件或为空,则这些公式输出 TRUE,并输出否则为假。然后我修改宏如下:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Range("$A:$C").AutoFilter Field:=3
ActiveSheet.Range("$A:$C").AutoFilter Field:=3, Criteria1:="TRUE", _
Operator:=xlOr, Criteria2:=""
ActiveSheet.Range("$A:$C").AutoFilter Field:=2
ActiveSheet.Range("$A:$C").AutoFilter Field:=2, Criteria1:="<>x", _
Operator:=xlAnd
End Sub
此宏现在过滤掉 B 列中显示“x”的行,但也允许插入新行而不立即过滤掉这些行。可能有比这更简单的解决方案,但这似乎至少足以满足我的目的。