我正在使用以下内容过滤掉特定日期,但它会隐藏所有单元格,并且不会留在所需的数据中。手动完成时,它工作正常,当我将范围更改为最后一行( $ AL1210 )时也可以正常工作,但是这个范围会随着我每天粘贴新数据而增加。
我正在尝试找到一个理想情况下自动增加到最后一行的范围的解决方案(虽然我从其他答案尝试了这个并得到相同的结果,因为我不明白为什么过滤器不起作用,可以有人帮我这个吗?
Sub Auto_Filter()
`Auto_Filter Macro
`This Auto Filters all data for years 2017 & 2018, this also sorts to newest date first
Keyboard Shortcut: Ctrl+Shift+A
Sheets("Paste Data").Select
ActiveSheet.Range("$A$1:$AL$10000").AutoFilter Field:=9, Criteria1:= _
">=01/01/2017", Operator:=xlAnd, Criteria2:="<=31/12/2018"
ActiveWorkbook.Worksheets("Paste Data").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Paste Data").AutoFilter.Sort.SortFields.Add Key:= _
Range("I1:I10000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("Paste Data").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
答案 0 :(得分:0)
如果您想动态设置范围。
Dim rng As Range, sh As Worksheet
Set sh = Sheets("Paste Data")
With sh
Set rng = .Range("A1:AL" & .Cells(.Rows.Count, "AL").End(xlUp).Row)
End With
答案 1 :(得分:0)
使用&#34; yyyy / mm / dd&#34;代码中的日期格式 - JK2017
工作谢谢