Доброго времени суток!
Подскажите что изменить в коде. Использую для скрытия и удаления строк этот код, но очень неудобно каждый раз открывать Визуал Бэйсик и добавлять новые слово. Возможно ли чтобы искомый/заданный текст брался из Листа1, а фильтровал Лист2?
Пример кода и файла прилагаю
Подскажите что изменить в коде. Использую для скрытия и удаления строк этот код, но очень неудобно каждый раз открывать Визуал Бэйсик и добавлять новые слово. Возможно ли чтобы искомый/заданный текст брался из Листа1, а фильтровал Лист2?
Пример кода и файла прилагаю
Код |
---|
Sub УдалениеСтрокПоНесколькимУсловиям() Dim ra As Range, delra As Range Application.ScreenUpdating = False ' отключаем обновление экрана ' ищем и удаляем строки, содержащие заданный текст ' (можно указать сколько угодно значений, и использовать подстановочные знаки) УдалятьСтрокиСТекстом = Array("текст1", "текст2", "текст3") ' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows ' перебираем все фразы в массиве For Each word In УдалятьСтрокиСТекстом ' если в очередной строке листа найден искомый текст If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then ' добавляем строку в диапазон для удаления If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next word Next ' если подходящие строки найдены, то: (оставьте одну из 2 следующих строк) If Not delra Is Nothing Then delra.EntireRow.Hidden = True ' скрываем их If Not delra Is Nothing Then delra.EntireRow.Delete ' удаляем их End Sub |