Gene은 특정 열의 날짜를 기준으로 워크 시트에서 데이터를 빠르게 삭제할 수있는 방법을 찾고 있습니다. 날짜가 오늘보다 오래된 경우 (날짜가 지난 경우) 행을 삭제해야합니다.

이것은 매크로를 사용하여 쉽게 수행 할 수 있습니다. 매크로를 통해 데이터를 살펴보고 각 행의 날짜를 오늘 날짜와 비교하기 만하면됩니다. 날짜가 오늘보다 작 으면 EntireRow 개체에 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)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excel-Deleting_Old_Data_from_a_Worksheet [Deleting Old Data from a Worksheet].