Добрый день!
Есть excel файл, состоящий из двух страниц - первая "Data" - источник данных, которые необходимо в последующем отфильтровать, и вторая "Фильтр". На странице фильтра задаются параметры фильтрации. На этой же странице находится кнопка по нажатию на которую, данные должны быть отфильтрованы.
Логика была такая. Создал переменную массив, длиной 20 - Dim mass(20) As String. В переменную помещаю Наименования городов, у которых отмечена галка, в поле количество городов. Далее перехожу на страницу Data, вычисляю количество строк в источнике, и оператором For Each по диапазону проверяю на совпадение города, с элементами массива. В случае совпадения ничего не делаем, другие строки добавляем в переменную delra типа Range и по окончании цикла удаляем эти строки.
только ошибка почему-то возникает в момент удаления delra.EntireRow.Delete
Подскажите, в чем может быть ошибка?
Есть excel файл, состоящий из двух страниц - первая "Data" - источник данных, которые необходимо в последующем отфильтровать, и вторая "Фильтр". На странице фильтра задаются параметры фильтрации. На этой же странице находится кнопка по нажатию на которую, данные должны быть отфильтрованы.
Логика была такая. Создал переменную массив, длиной 20 - Dim mass(20) As String. В переменную помещаю Наименования городов, у которых отмечена галка, в поле количество городов. Далее перехожу на страницу Data, вычисляю количество строк в источнике, и оператором For Each по диапазону проверяю на совпадение города, с элементами массива. В случае совпадения ничего не делаем, другие строки добавляем в переменную delra типа Range и по окончании цикла удаляем эти строки.
Код |
---|
lLastRow = Sheets("Data").Cells(Sheets("Data").Rows.Count, 1).End(xlUp).Row Worksheets("Data").Select For Each ra In Worksheets("Data").Range("A3:A" & lLastRow) 'перебираем все фразы в массиве For Each word In mass ' если в строке найден искомый текст 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 End If Next word Next ra If Not delra Is Nothing Then delra.EntireRow.Delete |
только ошибка почему-то возникает в момент удаления delra.EntireRow.Delete
Подскажите, в чем может быть ошибка?