我有下一个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小时”而不是让我输入完整日期字符串。
我知道如何编辑它?谢谢!
答案 0 :(得分:1)
我不确定我是否理解你的问题,所以我猜了一下。
看看这个:
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
中扣除。