У меня есть таблица, где в столбце C указаны числовые значения, отсортированные от max до min. Если значения столбца C> 40, макрос удаляет всю строку таблицы. Я использую следующий макрос:Как удалить строки на основе условия в VBA?
Sub DeleteRowsPiuDi40Mega()
Dim LastRow As Long
Dim ws4 As Worksheet
Set ws4 = ActiveWorkbook.Sheets("atm_hh")
LastRow = ActiveSheet.Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row
For i = 2 To LastRow
If Cells(i, 3) > 40 Then Rows(i & ":" & i).EntireRow.Delete
Next i
End Sub
Проблема в том, что после удаления некоторых строк он останавливается, оставляя в колонке C некоторые значения, которые> 40. Что может быть не так с этим кодом?
Вы должны удалить строки в обратном 'Для я = LastRow 2 Шаг -1' так, чтобы она не пропустить строки. На то, что вы пытаетесь достичь, уже ответили. Позвольте мне найти ссылку для вас –
Вы можете использовать метод [ЭТО] (http://stackoverflow.com/questions/9379673/excel-vba-delete-empty-rows). –