Re: Удаление строки по условию
Добавлено: 13 апр 2009, 19:01
Здравствуйте kuznetsovSergey.
в Вашей конструкции есть недостаток, который может привести к ошибке при совпадении двух условий проверки :подобное исправление кода освобождает его от этого недостатка и лишних проверок внутри цикла.
Евгений
в Вашей конструкции есть недостаток, который может привести к ошибке при совпадении двух условий проверки :
Код: Выделить всё
...
sheet15 = Sheets("name_page").Cells(i, 15).Value
sheet12 = Sheets("name_page").Cells(i, 12).Value
If sheet15 = d Then 'при выполнении условия
Sheets("name_page").Rows(i).Delete 'стока удаляется
i = i - 1 ' указатель номера строки уменьшается на единицу
End If
If (Left(sheet15, Len(b)) = b) Then 'и при выполнении условия
Sheets("name_page").Rows(i).Delete 'удаляется предыдущая строка (!)
...
Код: Выделить всё
...
With Sheets("name_page")
While Not IsEmpty(.Cells(i, 1))
sheet15 = .Cells(i, 15).Value: sheet12 = .Cells(i, 12).Value
If sheet15 = d Then
.Rows(i).Delete
ElseIf (Left(sheet15, Len(b)) = b) Then
.Rows(i).Delete
ElseIf sheet12 <> e And sheet12 <> f And sheet12 <> g Then
.Rows(i).Delete
Else
i = i + 1
End If
Wend
End With
...
Евгений