Повторение макроса на следующих строках - VBA
Формулировка задачи:
Добрый день. Возможно подобная тема есть, но, к сожалению, я её не нашел. И так: есть макрос, который выполняет определенные действия в строчке. Необходимо сделать так, что бы после выполнения своих функций он перешел на следующую строку и проделал все функции еще раз. И так до тех пор, пока строки с данными не кончатся. Их может очень много (до 15 тысяч строк). Заранее благодарен за любую информацию.
Решение задачи: «Повторение макроса на следующих строках»
textual
Листинг программы
Sub УдалениеСтрокПоНесколькимУсловиям() Dim УдалятьСтрокиСТекстом Dim ra As Range, delra As Range, word Application.ScreenUpdating = False ' отключаем обновление экрана ' ищем и удаляем строки, содержащие заданный текст ' (можно указать сколько угодно значений, и использовать подстановочные знаки) УдалятьСтрокиСТекстом = Array("Умножение", _ "Официально поддерживаемые стандарты памяти", _ "id сертификата", _ "инструкция", _ "id", _ "partNumber", _ "manufacturerCountry", _ "gtdNumber", _ "pictureID", _ "гарантия", _ "драйвер", _ "rusName") ' перебираем все строки в используемом диапазоне листа 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) Exit For ' Вот здесь понадобился выход из цикла End If Next word Next Debug.Print delra.Address 'Для чтоб убедиться, что всё сработало как надо If Not delra Is Nothing Then delra.EntireRow.Delete ' удаляем их Application.ScreenUpdating = True ' Включаем обратно обновление экрана!!! End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д