Добрый вечер уважаемые форумчане!
Хочу макросом удалить содержимое строк.
Есть у меня макрос, который по фиксированному значению текста удаляет строки:
Не могу им пользоваться, т.к. признак текста по которому происходит удаление строк заранее неизвестен и может меняться.
Поэтому в столбце G я добавляю строки с текстом, который хочу удалить. Если такие строки присутствуют в столбце G, их нужно стереть на всем листе.
Файл прилагаю вложением для наглядности.
Если поможет облегчить задачу, есть один нюанс- строки которые подлежат удалению имеют в столбце D текст "Рек" на белом фоне. Если "Рек" написан на желтом фоне, то их нельзя удалять.
Хочу макросом удалить содержимое строк.
Есть у меня макрос, который по фиксированному значению текста удаляет строки:
Код |
---|
Dim ra As Range, delra As Range Application.ScreenUpdating = False ' отключаем обновление экрана ' ищем и удаляем строки, содержащие заданный текст ' (можно указать сколько угодно значений, и использовать подстановочные знаки) УдалятьСтрокиСТекстом = Array("ID ", "Шапка ", "Лицензия ", "(СЗ") ' перебираем все строки в используемом диапазоне листа 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 ' удаляем их |
Поэтому в столбце G я добавляю строки с текстом, который хочу удалить. Если такие строки присутствуют в столбце G, их нужно стереть на всем листе.
Файл прилагаю вложением для наглядности.
Если поможет облегчить задачу, есть один нюанс- строки которые подлежат удалению имеют в столбце D текст "Рек" на белом фоне. Если "Рек" написан на желтом фоне, то их нельзя удалять.