Страницы: 1
RSS
Макрос для удаления строк
 
Добрый день, помогите с макросом. Задача в следующем - есть лист ( data) порядка 50 000 строк, необходимо в нем удалить строки с номерами подразделений из Списка на Листе 2. Сам список  меняется, сейчас около10 значений и постоянно увеличивается. Пока список был небольшой - записал рекордером макрос удаления по автофильтру, но постоянно добавлять новые строки в макрос стало сложно. Наверное есть решение , чтобы перебирать по очереди номера в списке через автофильтр и удалять отфильтрованные строки. Поиск на форуме не помог - есть решения с комбоксом, по выпадающему списку, но это не подходит. буду признателен за любую помощь.
 
Лучше использовать расширенный фильтр (кнопка "Дополнительно...") - отобрать строки по списку на Листе 2 и удалить.
Файл посмотреть не могу.
 
не вижу макроса
видимо остался в personal.xlsb
 
Расширенный фильтр не подходит- пытался настроить.
 
настройте впр на таблицу
а далее что хотите
--временно скрыть
--удалить

7326 u
6343 u
4014 u
4850 u
6105 u
6564 u
6717 u
4381 u
 
Макрос  не  стал  прописывать-  обычный автофильтр-  в критерии прописывал  номера  подразделений и все. С ним не совсем удобно-  так как список  еженедельно меняется.  С ВПР - как вариант  можно попробовать. Спасибо galina mur.
 
Код
Option Explicit

Sub fastdelrows()

    Dim el, a(), i&, x As Range

    With CreateObject("Scripting.Dictionary")

        For Each el In Sheets("Лист2").Range("C5").CurrentRegion.Value
            .Item(el) = 0&
        Next

        a = Sheets("data").Range("B1").CurrentRegion.Columns(1).Value
        ReDim b(1 To UBound(a), 1 To 1)
        For i = 1 To UBound(a)
            If .exists(a(i, 1)) Then b(i, 1) = 1
        Next

    End With

    With Sheets("data")
        .Range("F1").Resize(UBound(b), 1) = b
        Set x = .[F:F].Find(1, , , xlWhole)
        If Not x Is Nothing Then
            .[F:F].ColumnDifferences(x).EntireRow.Hidden = True
            .UsedRange.SpecialCells(xlCellTypeVisible).EntireRow.Delete
            .Rows.Hidden = False
        End If
    End With

End Sub
 
Hugo-  огромное спасибо, то  что  хотелось -  все работает.  Ты меня уже  не раз выручал.
Вопрос  решен.  тему можно закрывать.
Страницы: 1
Читают тему
Наверх