Копирование строки из существующего листа на основе диапазона дат - PullRequest
0 голосов
/ 19 сентября 2018

Приведенный ниже код помогает мне, если на листе 1 конкретная дата в столбце L меньше или равна сегодняшней дате, из листа1 скопируйте определенные строки в лист2, начиная с A3, и сделайте это для всего списка.

У меня есть два последующих вопроса;

1) Я хочу, чтобы скопированные ячейки на листе 2 были вставлены во вновь созданную строку (необходимо включить 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

1 Ответ

0 голосов
/ 19 сентября 2018

Просто используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...