Страницы: 1
RSS
VBA удаление строк по значению столбца
 
Почему-то удаляет не все строки с ненужными значениями. Строки с нужным значением "Текст" должен оставлять все, а некоторые почему-то удаляются.
Код
For iRow = 2 To 100
    If Cells(iRow, "C") <> "Текст" Then
           Rows(iRow).Delete Shift:=xlUp
    End If
 Next iRow


кнопка оформления кода в сообщении - <...> [МОДЕРАТОР]
 
Ну вообще цикл в этом случае надо делать снизу
Код
For iRow = 100 To 2 Step -1
Плюс есть готовые коды - можете подстроить под себя: Как удалить строки по условию?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо. А какая разница, сверху или снизу?
Код
For iRow = 32 To 2 Step -1
    If Cells(iRow, "C") <> "Текст1" Or Cells(iRow, "C") <> "Текст2" Then
          Cells(iRow, "C").Select
          Rows(iRow).Delete Shift:=xlUp
    End If
 Next iRow


Когда условие не выполняется, программа в него все равно заходит и удаляет строку  (Cells(iRow, "C") = "Текст1"). В результате удалены все строки, кроме первой.
Изменено: Проводка - 18.03.2016 15:49:33
 
Код
For iRow = 32 To 2 Step -1 
    If Cells(iRow, "C") <> "Текст1" Or Cells(iRow, "C") <> "Текст2" Then 
          Cells(iRow, "C").Select 
          Rows(iRow).Delete Shift:=xlUp 
    End If 
 Next iRow 

 
Зачем сообщение #4? Исправьте оформление в третьем.
По вопросу: при удалении меняется номер текущей строки и цикл "перескакивает".
Страницы: 1
Наверх