VBA Excel Clearing - PullRequest
       0

VBA Excel Clearing

1 голос
/ 06 марта 2020

Следующий код работает, но выполняется слишком медленно на больших файлах, поэтому необходимо изменить код, чтобы определить первый год, который предшествует 2019 году, а затем удалить эту строку и строку, содержащую остальные годы ниже этого, все единовременно:

Range("B2").Select
  Do Until ActiveCell.Value =""
    If ActiveCell.Value < 2019 Then
        ActiveCell.EntireRow.Delete
Else
    ActiveCell.Offset(1,0).Select
End If
Loop

Проблема кода: наборы данных могут иметь 1000 строк, поэтому проверка каждой ячейки выполняется очень медленно. Поскольку данные всегда в порядке, все, что мне нужно сделать, это найти первую запись <2019, а затем выбрать <code>xldown и удалить все, но я не знаю, как найти эту ячейку и сделать ее активной.

1 Ответ

2 голосов
/ 06 марта 2020

как указано в комментариях :

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...