The following code works but runs too slowly on large files, so the code needs to be modified to identify the first year that is earlier than 2019 and then delete that row and the row containing the rest of the years below that, all at one time:
Range("B2").Select Do Until ActiveCell.Value ="" If ActiveCell.Value < 2019 Then ActiveCell.EntireRow.Delete Else ActiveCell.Offset(1,0).Select End If Loop
Code Problem: data sets can have 1000’s of rows so checking every cell is very slow. Since the data is always in order, all I need to do is find the first entry <2019 and then select
xldown and delete everything, but I don’t know how to find that cell and make it the active cell.
as stated in the comments:
Dim firstrow As Variant firstrow = Application.Match(2018, ActiveSheet.Range("B:B"), -1) If Not IsError(firstrow) Then Dim lastrow As Long lastrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row ActiveSheet.Rows(firstrow + 1 & ":" & lastrow).Delete End If