Excel 过滤今天之前的日期

Excel 过滤今天之前的日期,excel,vba,Excel,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 如果我理解正确的话,下面的内容就可以了。无论何

我找到并编辑了代码。它应该过滤O列,只显示小于或早于今天的日期。单元格AC2显示今天的日期。我甚至不能运行代码

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

如果我理解正确的话,下面的内容就可以了。无论何时运行代码,它都会根据计算机的系统时间进行筛选,以仅显示当前日期之前的日期:

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

如果您希望包括今天,change可以尝试过滤日期,例如在哪个日期之后。 字段,第7列

ActiveSheet.RangeA:G.AutoFilter字段:=7,准则1:=>&CLngCDate12/31/2015,运算符:=xlAnd

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

希望这有帮助


你声明变量myval了吗?我甚至不能播放代码,这不是一个有用的问题描述。您发布的代码有什么具体问题?嗨,肯,我正在尝试筛选显示今天之前发票数据的O列。嗨,科里,还没有。尽管我不久前声明了变量,但它不允许我播放代码。不管怎样,我已经修复了这个问题,现在可以播放代码,尝试过滤O列,正如我和Ken提到的。嗨,Liza,现在代码已经播放了,但它在这一行显示了错误——MyVal=Application.WorksheetFunction.WorkDayRangeAC2.Value,是的,你是对的。你对我的问题理解正确。啊,对不起,我把申报单忘在那里了。将Dim MyVal添加为MyVal=Application.WorksheetFunction.WorkDayRangeAC2.Value之前的日期,5.请格式化您的代码并解释为什么它会有帮助。+1 Upvote:在非英语Excel版本中,与日期时间值的比较不起作用,但CDbl的额外类型转换可以做到这一点。请不要对多个问题发布相同的答案,而不是针对单个问题进行调整。与其只发布一些代码,不如进行一些解释,以增加理解答案的价值。请描述解决方案。没有注释的代码列表是没有用处的,因为很难从中学习到一些东西。在答案的标题中,有了这段代码,您可以使用它来过滤一组日期小于今天的日期,如果您有很多过期的股票,并且您想快速了解过期的情况,这是很好的
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
Sub Test()

Dim MyVal As Date

MyVal = Range("AC2").Value

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

End Sub
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)
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