在另一个关于自动过滤器的问题上,我被bobajob极大地帮助了。但是,我需要稍微复杂化一些事情。以下代码允许用户在excel中搜索产品的小数据表并使其自动过滤。它的工作非常出色(再次感谢bobajob !!),但我需要通过添加日期搜索功能使其稍微复杂化。此文件涉及某些产品,日期指的是生产日期,到期日期等。原始搜索功能允许搜索特定品牌,生产地点和序列号...但现在我必须添加在两个日期之间制造这些物品时拉起的能力,但仍保留其制造地点的搜索标准等。
通过修改下面的代码是最好的方法吗?或者添加一个单独的模块?那仍然可以链接两个领域等?
Sub FilterTo1Criteria()
Dim i As Long
With Sheet1
.AutoFilterMode = False
.Range("A9:J1018").AutoFilter
For i = 1 To 10
If .Cells(3, i) <> vbNullString Then
.Range("A9:J1018").AutoFilter Field:=i, Criteria1:=.Cells(3, i)
End If
Next i
End With
End Sub
提前致谢!!
答案 0 :(得分:0)
鉴于我对原作很熟悉,我也会对此有所了解。以下将测试第三行(第一个标准)以查看它是否为日期,如果是,将使用第3行和第4行来定义要过滤的日期范围:
Sub FilterTo1Criteria()
Dim i As Long
With Sheet1
.AutoFilterMode = False
.Range("A9:J1018").AutoFilter
For i = 1 To 10
If .Cells(3, i) <> vbNullString Then
If IsDate(.Cells(3, i)) Then
.Range("A9:J1018").AutoFilter Field:=i, Criteria1:=">=" & CLng(.Cells(3, i)), Criteria2:="<=" & CLng(.Cells(4, i))
Else
.Range("A9:J1018").AutoFilter Field:=i, Criteria1:=.Cells(3, i)
End If
End If
Next i
End With
End Sub
注意我首先将日期转换为多头,这有望避免日期本地化中的任何歧义。