Альтернативный способ фильтрации циклом for next

Рассмотрим аналогию фильтрации в ООО циклом for next в реализации VBA. В следующем примере мы удалим строки с данными цехов производства и пекарни из файла Реестр документов.

Sub DelStringFor()
'Определяем последнюю заполненную ячейку диапазона (нижнюю границу)
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Указываем первую ячейку, до которой будет работать цикл (без заголовка - 2 ячейка)
FirstRow = 2
' Создаем цикл от последней ячейки до первой
 For i = lLastRow To FirstRow Step -1
text1 = Cells(i, 5).Value
' Нам нужно удалить строки содержащие данные цехов производства и пекарни
 If Trim(Left(text1, 12)) = "Производство" OR Trim(Left(text1, 7)) = "Пекарня" Then
' Удаляем строки
 Rows(i).Delete
' Закрываем условие и цикл
 End If
 Next i
End Sub

Задача. Удалите из файла Реестр документов циклом строки содержащие ПРОГАС, ПРОБАК, ПРООВ. Не забудьте что для большей надежности оператор Left нужно подкреплять оператором Trim, как в примере выше, т.к. выгруженные из БД отчеты часто содержат лишние пробелы перед данными.

Комментарии

Популярные сообщения из этого блога

Запуск макросов в автоматическом режиме по расписанию

Пакетная обработка отчетов

Отправка отчетов по электронной почте