Повторение макроса на следующих строках - 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