我需要应用自动过滤器来选择特定日期范围内的数据。日期范围也是字符串。该代码工作正常,但它实际上已将日期更改为美国格式,因此2015年2月6日现在是2015年6月2日。
Dim mindate, maxdate, fixedmindate, fixedmaxdate As String
mindate = "060215"
maxdate = "120215"
fixedmindate = DateSerial(Right(mindate, 2), Mid(mindate, 3, 2), Left(mindate, 2))
fixedmaxdate = DateSerial(Right(maxdate, 2), Mid(maxdate, 3, 2), Left(maxdate, 2))
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
ActiveSheet.Range("A1:CQ" & LastRow).AutoFilter Field:=3, Criteria1:="CHECK"
ActiveSheet.Range("A1:CQ" & LastRow).AutoFilter Field:=23, Criteria1:=">=" & fixedmindate, Operator:=xlAnd, Criteria2:="<=" & fixedmaxdate
答案 0 :(得分:0)
由于区域格式问题&#39;
,可能会发生这种情况从&#39;日期&#39;更改excelsheet中日期的数字格式格式类别为&#39; text&#39 ;; 保存。保存后运行VBA代码。现在检查日期格式是否为&#39; text&#39;或者改回日期&#39;。
如果已更改回&#39; date&#39;尝试将其修改为&#39; text&#39;
如果它&#39;文字&#39 ;;更正错误的日期单元格并保存Excel工作表。这将使日期不会自动更改为美国格式。
(您可以通过再次运行VBA代码来确认)