自动过滤两列作为OR函数

时间:2018-03-19 14:33:20

标签: vba filtering

我正在尝试过滤excel中的两列以显示今天提供的所有结果(两个单独的列)。我尝试了多种方法,但是我不断得到反映" AND"声明。我觉得我很亲近。

Sub Playing_Today_v2()
Dim s As String
s = "=" & CStr(Date)


With ActiveSheet.ListObjects("table1").Range
.AutoFilter
.AutoFilter Field:=7, Criteria1:=s
End With

With ActiveSheet.ListObjects("table1").Range
.AutoFilter
.AutoFilter Field:=9, Criteria1:=s
End With


End Sub

非常感谢任何和所有帮助!!

1 个答案:

答案 0 :(得分:0)

您好,为了通过VBA执行此操作,您首先需要了解如何手动完成这两种方式:

  • 向表中添加帮助列
  • 使用高级过滤器

对于辅助列,添加类似于=OR(Col7=TODAY(),Col9=TODAY())的公式,并过滤到该列等于true

对于高级过滤器,创建一个2 x 3范围并填充如下:

Col7 NAME, Col9 NAME
=Today() ,
         , =Today()

使用作为您的条件范围进行OR选择(如果您想要AND选择将它们放在同一行上)。

手动完成后,通过添加新列并添加1个类似于现有代码的自动浏览器或使用Range.AdvancedFilter方法,移动到VBA相当容易。

如果您对代码感到困惑,请发一个问题,告诉您有多远,有人可以提供帮助。