带有用户输入的VBA时间过滤器



我有下一个VBA代码,它知道如何在两个日期范围之间进行过滤:

Public Sub MyFilter()
Dim lngStart As Date, lngEnd As Date
lngStart = Range("b2").Value 'assume this is the start date
lngEnd = Range("b3").Value 'assume this is the end date
Range("A5:T5").AutoFilter Field:=17, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria2:="<=" & lngEnd

End Sub

我想知道如何修改它以使其更加用户友好并相应地更新它: 1.结束时间可以始终是当前时间。 2.我希望在开始时间单元格中,我能够输入诸如:4,5,9之类的数字,并且代码将知道将其修改为"当前日期-4小时",而不是让我输入完整的日期字符串。

知道我该怎么编辑它吗?,谢谢!

我不确定我是否理解你的问题,所以我有点猜测。
看看这个:

Public Sub MyFilter()
Dim StartDate As Date, EndDate As Date
StartDate = DateAdd("h", -Range("b2"), Now)
EndDate = Now
Range("A5:T5").AutoFilter Field:=17, _
Criteria1:=">=" & StartDate, _
Operator:=xlAnd, _
Criteria2:="<=" & EndDate
End Sub

我已将结束日期值替换为Now,它给出了当前时间。根据您的需要,您可能需要将其调整为今天或昨天的午夜。现在,开始日期使用DateAdd计算。小时数从 B2 中选取并从Now中减去。

顺便说一句 - 你需要重新考虑你的变量命名。在日期前面加上液化天然气不是好的做法

最新更新