如何在 Excel 中的单独表中应用过滤器?

如何在 Excel 中的单独表中应用过滤器?

我想在两个单独的表格上应用过滤器,但问题是,当我仅在其中一个表格中使用过滤器,然后选择另一个表格并单击过滤器时,过滤器按钮将被停用,因此我只能将过滤器应用于一个表格。如何将过滤器插入两个表格中??而无需格式化为表格或数据透视表?在此处输入图片描述

答案1

此 VBA(宏)代码将帮助您根据不同的条件逐个过滤两个表。

未过滤的表格:

在此处输入图片描述

Private Sub CommandButton1_Click()

If CommandButton1.Caption = "Filter Table1" Then

 With Sheet2

 .AutoFilterMode = False
 .Range("A210:D222").AutoFilter
 .Range("A210:D222").AutoFilter Field:=1, Criteria1:="Albama"

End With
CommandButton1.Caption = "Filter Table2"

ElseIf CommandButton1.Caption = "Filter Table2" Then

With Sheet2

 .AutoFilterMode = False
 .Range("A225:D237").AutoFilter
 .Range("A225:D237").AutoFilter Field:=4, Criteria1:="Portor"

End With
CommandButton1.Caption = "Filter Table1"
End If

End Sub

过滤第一个表:

在此处输入图片描述

过滤第二个表:

在此处输入图片描述

怎么运行的:

  • 创建一个命令按钮并设置标题 过滤表1
  • 点击单击命令按钮打开 VB 编辑器并复制粘贴上面显示的代码为标准模块。
  • 节省并返回工作表。
  • 点击命令按钮过滤表 1之后代码将设置它的标题,过滤表 2
  • 然后点击命令按钮筛选表2之后代码将设置它的 标题,过滤表 1

通过这种方式,您可以依次过滤两个表。

注意:

  • 在上面显示代码工作表名称、范围、字段和条件是可编辑的。
  • 如果你想使用多个标准,那么你的代码应该是这样的,

    .Range("A210:D222").AutoFilter Field:=1, Criteria1:="Albama", _ Operator:=xlOr, Criteria2:="Verginia"

  • 对于多个字段:

    .AutoFilter Field:=1, Criteria1:="Albama" .AutoFilter Field:=4, Criteria1:="Portor"

根据需要调整代码中的单元格引用。

答案2

您需要选择所占范围两个都在应用第一个过滤器之前,表格将显示过滤按钮全部选定范围内的列(包括两个表格之间的空白列,但这是不可避免的):

在此处输入图片描述

以上假设您不想将两个范围转换为单独的表;如果这样做,您可以分别过滤这两个表。

相关内容