在今天之前过滤日期

时间:2014-06-20 19:56:26

标签: excel excel-vba vba

美好的一天,

你能帮我解决一下我发现和编辑过的代码吗?它应该过滤列O,并且仅显示日期之前或之前的日期。请注意,单元格AC2显示今天的日期,但我甚至无法播放代码。

With Sheets(1)
MyVal = Application.WorksheetFunction.WorkDay(Sheets(1).Range("AC2").Value)
Sheets(1).Range("A1:AA1").AutoFilter Field:=15, Criteria1:="<=" & MyVal

5 个答案:

答案 0 :(得分:7)

如果我理解正确,下面应该可以解决问题。根据计算机的系统时间,只要代码运行,它就会过滤显示当前日期之前的日期:

Sub DateFilter()
Sheets(1).Range("A1:AA1").AutoFilter Field:=15, Criteria1:="<" & Date
End Sub

如果您希望今天加入,请更改“&lt;”到“&lt; =”。 “日期”是引用当前日期的VBA方式。它使用您计算机的系统时间。

WorkDay函数用于在另一个日期之后查找特定数量的工作日的日期。你这样使用它:

WorkDay(开始日期,要计算的工作日数)

因此,如果您希望在单元格AC2中指定的日期之后的五个工作日之前根据任何内容过滤列O,您可以使用:

Sub Datefilter()
Dim MyVal As Date
MyVal = Application.WorksheetFunction.WorkDay(Range("AC2").Value, 5)
Sheets(1).Range("A1:AA1").AutoFilter Field:=15, Criteria1:="<" & MyVal
End Sub

答案 1 :(得分:1)

Sub Test()

Dim MyVal As Date

MyVal = Range("AC2").Value

ActiveSheet.Range("A:O").AutoFilter 15, ">=" & CDbl(MyVal)

End Sub

答案 2 :(得分:0)

即使您使用的是非美国excel,这也允许您为<今天的日期过滤列”

Private Sub C_Out_of_date_Click()
Dim dDate As Date

Dim strDate As String

Dim lDate As Long

'Sheets("supplier") is a engine page where you can place info and then hide the tab 

 'sheets("Suppliers").Range("F1") = year (cell format yyyy) (=today() in cell) 

 
'Sheets("Suppliers").Range("G1") = month (cell format mm) (=today() in cell) 



'Sheets("Suppliers").Range("H1") = day (cell format dd) (=today() in cell)


dDate = DateSerial(Year(Sheets("Suppliers").Range("F1")), month(Sheets("Suppliers").Range("G1")), day(Sheets("Suppliers").Range("H1")))


lDate = dDate

Sheets("MHRA").Range("$A$1:$G$1353").AutoFilter

                                        'change field depending on your data cloumn
Sheets("MHRA").Range("$A$1:$G$1353").AutoFilter Field:=3, Criteria1:="<" & lDate
end sub

希望这会有所帮助

答案 3 :(得分:-1)

例如,可以尝试过滤日期之后的日期。 字段,第7列。

  

ActiveSheet.Range(“ A:G”)。AutoFilter Field:= 7,Criteria1:=“>”&CLng(CDate(“ 12/31/2015”)),Operator:= xlAnd

答案 4 :(得分:-1)

LL = Cells(1000000, "G").End(xlUp).Row 'last cell in column g
ActiveSheet.Range(Cells(1, 1), Cells(LL, 7)).AutoFilter Field:=7, Criteria1:=">=" & CDbl(Date - 3)
相关问题