Хорошо, так что это довольно запутанно, но мой код должен работать, но он все еще не работает (он только удаляет несколько строк, а затем останавливается ...)
Вот что я пытаюсь сделать:
У меня есть лист, в котором некоторые ячейки в column "B"
содержат строки (все они содержат "DELETE"
в той или иной форме), а некоторые ячейки пустые. Теперь я хочу удалить все строки, в которых рассматриваемая ячейка в column "B"
содержит строку "DELETE"
, но при этом оставить те, в которых ячейка в столбце «B» пуста. Я могу только определить диапазон (lastrow
) цикла на основе column "A"
, так как он заполнен до конца.
Еще одна вещь, которую я пытаюсь сделать в своем цикле, - это удалить все строки, где ячейка в column "E"
не равна строке "Active"
, но по какой-то причине это все равно не работает.
Уточнение: строка «УДАЛИТЬ» может быть случайным образом в верхнем или нижнем регистре («УДАЛИТЬ», «Удалить», «Удалить» и т. Д.)
Вот мой код:
Sub format_pull()
Dim sh1 As Worksheet
Set sh1 = Sheets("Sheet1")
LastRow = crc.Cells(Rows.Count, "A").End(xlUp).Row
For x = 2 To LastRow
If InStr(1, sh1.Range("B" & x).Value, UCase("DELETE"), 1) = 0 Then sh1.Range("B" & x).Value = "KEEP"
If sh1.Range("B" & x).Value = "DELETE" Then sh1.Range("B" & x).EntireRow.Delete
If sh1.Range("E" & x).Value <> "Active" Then sh1.Range("E" & x).EntireRow.Delete
Next x
End Sub
Пожалуйста, помогите, это должен быть очень простой цикл, и я буквально не понимаю, почему он не работает ...