下面的代码可以帮助我,如果在sheet1上,L列上的特定日期小于或等于今天的日期,请从sheet1将特定行复制到以A3开始的sheet2并针对整个列表进行。
我有两个后续问题;
1)我想将sheet2上复制的单元格插入到新创建的行中(需要合并End(xlUp))。还不能弄清楚
2)由于某些原因,如果我的第一张纸上装有过滤器,代码将无法工作...我必须删除代码的过滤器。不知道为什么无论打开还是关闭过滤器,它都不起作用。
Sub CopyRange()
Application.ScreenUpdating = False
Dim LastRow As Long
LastRow = Cells.Find("*", SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row
Range("L1:L" & LastRow).AutoFilter Field:=1, Criteria1:="<=" & Date
Intersect(Rows("2:" & LastRow),
Range("A:A,F:H,K:L,R:R,U:U").SpecialCells(xlCellTypeVisible)).Copy
Sheets("Sheet2").Cells(3, 1)
Range("L1").AutoFilter
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
只需使用Range("L:L")
。另外,我建议您使用With ActiveSheet
或更好的With Worksheet("sheetname")
Application.ScreenUpdating = False
Dim LastRow As Long
LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
With Worksheets("Sheet1")
Range("L:L").AutoFilter Field:=1, Criteria1:="<=" & Date
Intersect(Rows("2:" & LastRow), _
Range("A:A,F:H,K:L,R:R,U:U").SpecialCells(xlCellTypeVisible)).Copy _
Sheets("Sheet2").Cells(3, 1)
Range("L1").AutoFilter
End With
Application.ScreenUpdating = True