Удаление старых данных с листа

Джин ищет способ быстро удалить данные с листа на основе даты в определенном столбце. Если дата старше сегодняшней (дата уже прошла), то строку следует удалить.

Это довольно легко сделать с помощью макроса. Все, что вам нужно сделать, это пройти макрос по данным и сравнить дату в каждой строке с сегодняшней датой. Если дата меньше сегодняшней, то для объекта CompleteRow используется метод Delete.

 Sub DeleteRows1 () Dim x As Long Dim iCol As Integer iCol = 7 'Отфильтровать все по столбцу G Для  x = Cells (Cells.Rows.Count, iCol) .End (xlUp) .Row To 2 Step -1 If Cells (x, iCol) .Value  

В этом примере макрос проверяет дату в столбце G (в переменной iCol). Если ваша дата находится в другом столбце, вам следует внести изменения в переменную. В зависимости от количества строк данных на вашем листе макрос также может занять некоторое время для запуска.

Если вы заметили отставание в производительности, вы можете использовать другой подход. В следующем примере используются возможности автофильтрации Excel, чтобы сначала отфильтровать данные для отображения только старых данных, а затем удалить эти строки.

 Sub DeleteRows2 () Dim Dates As Range Dim nRows As Double Dim currDate  Как вариант 'Форматировать даты в виде текста Диапазон ("Даты"). NumberFormat = "@"' Сегодняшняя дата в числовом формате currDate = CDbl (Дата) Диапазон ("Даты"). Поле автофильтра: = 1, _ Criteria1: = " 

Этот макрос предполагает, что вы предприняли шаг по присвоению имени диапазону данных. Выделите все ячейки в таблице данных, включая любую строку заголовка, и дайте ей имя «Даты». Когда вы запускаете макрос, он использует этот диапазон как целевой для автофильтра.

Оцените статью
Frestage.ru
Добавить комментарий