我正在尝试过滤日期。已检查,控制面板知道我在英国。但是当我过滤它时 - 它有问题并且似乎使用美国日期格式而不是英国。当您单击过滤器时,它会根据英国系统正确给出日期/月份。
当我记录代码以查看发生了什么时,出现了以下情况。日期将被定义 - 我只是想弄清楚当我的过滤器不起作用时 VBA 在做什么。
Sub dating()
ActiveSheet.Range("$A$1:$AM$442").AutoFilter Field:=38, Operator:= _
xlFilterValues, Criteria2:=Array(2, "4/25/2014")
End Sub
我已将代码更新为,但即使列中有该日期的数据,它仍然不会在该日期进行过滤。我可能在这里遗漏了一些明显的东西。
Dim dteInvoices As Date
dteInvoices = Worksheets("front sheet").Range("f14")
Worksheets("trade details").Range("A1").AutoFilter 39, strText
.Range("A1").AutoFilter 38, CLng(dteInvoices)
感谢http://www.ozgrid.com/VBA/autofilter-vba-dates.htm的帮助我已经设法让它工作了
http://www.ozgrid.com/VBA/autofilter-vba-dates.htm
Range("a1").AutoFilter Field:=38, Criteria1:=">=" & lngDate, _
Operator:=xlAnd, Criteria2:="<" & lngDate + 1
最佳答案
不是错误。在 VBA 中的任何地方,您都必须遵守美国惯例。哪一个好:否则就必须根据用户设置使用不同的字符串!
我通常使用 Format(MyDate, "\#mm\/dd\/yy\#")
来确定。
关于date - VBA 日期过滤变成美国格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23579995/