Удаление старых данных с листа (Microsoft Excel)
Джин ищет способ быстро удалить данные с листа на основе даты в определенном столбце. Если дата старше сегодняшней (дата уже прошла), то строку следует удалить.
Это довольно легко сделать с помощью макроса. Все, что вам нужно сделать, это выполнить макрос, перебирая данные и сравнивая дату в каждой строке с сегодняшней датой. Если дата меньше сегодняшней, то для объекта 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 [Удаление старых данных из рабочего листа]
.