Excel自动筛选不';t使用VBA代码处理带有日期和时间的列
在MS Excel上使用VBA同时筛选日期和时间值时遇到问题。当我只需要筛选日期时,我发现使用以下代码没有问题:Excel自动筛选不';t使用VBA代码处理带有日期和时间的列,vba,datetime,excel,autofilter,Vba,Datetime,Excel,Autofilter,在MS Excel上使用VBA同时筛选日期和时间值时遇到问题。当我只需要筛选日期时,我发现使用以下代码没有问题: myRange.AutoFilter Field:=3, Criteria1:= _ ">=" & CDbl(CDate((Date - 2))), Operator:=xlAnd, Criteria2:="<=" & CDbl(CDate((Date))) myRange.AutoFilter字段:=3,标准1=_ “>=”&CDbl(CDat
myRange.AutoFilter Field:=3, Criteria1:= _
">=" & CDbl(CDate((Date - 2))), Operator:=xlAnd, Criteria2:="<=" & CDbl(CDate((Date)))
myRange.AutoFilter字段:=3,标准1=_
“>=”&CDbl(CDate((Date-2))),运算符:=xlAnd,准则2:=”考虑:
Sub DateTimeMaker()
Dim d1 As Date, d2 As Date, MyRange As Range
Dim crt1 As Double, crt2 As Double
d1 = DateValue("6/24/2014") + TimeValue("19:00")
d2 = DateValue("6/25/2014") + TimeValue("8:00")
crt1 = CDbl(d1)
crt2 = CDbl(d2)
Set MyRange = Range("A1:C10")
MyRange.AutoFilter Field:=3, Criteria1:=">=" & crt1, Operator:=xlAnd, Criteria2:="<=" & crt2
End Sub
子日期计时器()
尺寸d1作为日期,d2作为日期,MyRange作为范围
尺寸crt1为双精度,crt2为双精度
d1=日期值(“2014年6月24日”)+时间值(“19:00”)
d2=日期值(“2014年6月25日”)+时间值(“8:00”)
crt1=CDbl(d1)
crt2=CDbl(d2)
设置MyRange=Range(“A1:C10”)
MyRange.AutoFilter字段:=3,准则1:=“>=”&crt1,运算符:=xlAnd,准则2:=“=”&crt1,运算符:=xlAnd,准则2:=”我找到了一种方法:
Sub DateTimeFilter()
Dim d1, d2, m1, m2, y1, y2 As Integer
Dim dt1, dt2 As String
d1 = Day(Date - 1)
d2 = Day(Date)
m1 = Month(Date - 1)
m2 = Month(Date)
y1 = Year(Date - 1)
y2 = Year(Date)
dt1 = m1 & "/" & d1 & "/" & y1
dt2 = m2 & "/" & d2 & "/" & y2
ActiveSheet.Range("$A$3:$L$2012").AutoFilter Field:=3, Criteria1:= _
">=" & dt1 & " 19:00", Operator:=xlAnd, Criteria2:="<=" & dt2 & " 08:00"
End Sub
Sub-DateTimeFilter()
尺寸d1、d2、m1、m2、y1、y2为整数
尺寸dt1、dt2为字符串
d1=天(日期-1)
d2=天(日期)
m1=月份(日期-1)
m2=月(日)
y1=年份(日期-1)
y2=年份(日期)
dt1=m1&“/”&d1&“/”&y1
dt2=m2&“/”&d2&“/”&y2
ActiveSheet.Range(“$A$3:$L$2012”)。自动筛选字段:=3,标准1:=_
“>=”&dt1&“19:00”,运算符:=xlAnd,准则2:=“您可以添加TimeSerial()或TimeValue()函数到日期。感谢您的提示,@Gary,但我不使用静态日期。我始终需要使用从昨天19:00到今天8:00的日期范围。哪种语法适用于这种情况?它仍然不起作用。我不知道它是否从Excel版本更改为其他版本,但我使用的是MS Excel 2010。您的症状是什么?我的数据在A列到C列中,实际日期/时间在C列中…………确保C列包含实际值而不是文本。单元格的格式应为“dd/mm/yyyy hh:mm”。但即使将格式更改为“real date/time”“没用。我不知道这些信息是否有用,但我的桌面日期/时间配置是巴西标准的,因此我使用“dd/mm/yyyy hh:mm”而不是“mm/dd/yyyy hh:mm”。
Sub DateTimeFilter()
Dim d1, d2, m1, m2, y1, y2 As Integer
Dim dt1, dt2 As String
d1 = Day(Date - 1)
d2 = Day(Date)
m1 = Month(Date - 1)
m2 = Month(Date)
y1 = Year(Date - 1)
y2 = Year(Date)
dt1 = m1 & "/" & d1 & "/" & y1
dt2 = m2 & "/" & d2 & "/" & y2
ActiveSheet.Range("$A$3:$L$2012").AutoFilter Field:=3, Criteria1:= _
">=" & dt1 & " 19:00", Operator:=xlAnd, Criteria2:="<=" & dt2 & " 08:00"
End Sub