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

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

Sub DeleteRows1()

Dim x As Long     Dim iCol As Integer

iCol = 7 'Filter all on Col G

For x = Cells(Cells.Rows.Count, iCol).End(xlUp).Row To 2 Step -1         If Cells(x, iCol).Value < Date Then             Cells(x, iCol).EntireRow.Delete         End If     Next End Sub

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

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

Sub DeleteRows2()

Dim Dates As Range     Dim nRows As Double     Dim currDate As Variant

'Format dates as text     Range("Dates").NumberFormat = "@"

'Today's date in number format     currDate = CDbl(Date)

Range("Dates").AutoFilter Field:=1, _       Criteria1:="<" & currDate     nRows = Range("Dates").Rows.Count     Rows("2:" & nRows).Select     Selection.Delete Shift:=xlUp     Range("Dates").AutoFilter     Range("Dates").NumberFormat = "m/d/yyyy"

Range("C2").Select End Sub

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

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10783) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Deleting_Old_Data_from_a_Worksheet [Удаление старых данных из рабочего листа].