У меня возникли проблемы с этим битом кода, чтобы удалить строки, которые не представляют собой фактический минимум. Это просто не работает, я вручную проверил логику. То, что я пытаюсь проверить, - это то, что значение ячейки в строке 1, столбец 2 больше строки 2, столбец 2. И если это так, то полностью удалите строку 1. Я нашел примеры, где они петли аналогично этому, но ищите определенное строковое значение, а не сравнивайте значение ячеек с логическим выражением. Я сделал проверку, чтобы убедиться, что она ссылается на правильный рабочий лист и что я понимаю, как работает функция удаления. Я также проверил код с LRow + 1
вместо LRow - 1
. Что я делаю не так?Удаление строк, основанных на смежном значении ячейки - VBA
Sub rowdelete()
Dim LRow As Long
With Worksheets("WWOutput")
For LRow = Cells(Rows.Count, 2).End(xlUp) To Cells(7, 2) Step -1
If Cells(LRow, 2) > Cells(LRow - 1, 2) And Cells(LRow, 2) < 10000 Then
Rows(LRow).EntireRow.Delete
End If
Next LRow
End With
End Sub
Вот несколько примеров данных.
11804.6875
6415.625095
6333.593845
3786.718845
11841.40682
В этом случае все, что я хочу быть оставлены для данных
11804.6875
3786.718845
11841.40682
Спасибо заранее!
'убедитесь, что он ссылается на правильный worksheet', но это не тогда, когда вы забыли' .' перед 'cells' при использовании' with'. – findwindow
change 'Для LRow = Cells (Rows.Count, 2) .End (xlUp) К ячейкам (7, 2) Шаг -1' для' Для LRow = Ячейки (Rows.Count, 2) .End (xlUp) .Row To 7 Step -1' –
ahh, что-то настолько малое, что делает такую большую разницу. Спасибо @findwindow и Скотт! Поскольку я пытаюсь узнать больше о кодировании VBA, какая разница делает '.'? –