Страницы: 1
RSS
Если при фильтрации данных нет, перейти к следующей переменной
 
Добрый день, уважаемые формучане.
Прошу подсказать, есть макрос, который перебирает значения из диапазона и вставляет их как значение фильтра в другие листы. Но не во всех листах есть подходящие значения и при фильтрации ничего не выдает, но макрос всё равно обрабатывает пустой диапазон и шапку и переносит на след. лист.

Пример прилагаю, в городе Самара нет Сидорова, в Пензе нет Иванова, а на выходе всё равно получается Сидоров_, Иванов_
Код
Sub Splitter()

 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 
 Dim h As Integer
 Dim wrksht As Worksheet
 Dim oListObj As ListObject

       For h = 2 To Sheets.Count
       Set wrksht = ActiveWorkbook.Worksheets(h)
       
       Set oListObj = wrksht.ListObjects(1)
 
        For Each cell In Range("ФИО")
        Sheets(wrksht.Name).Select
        FinalCol = Cells(1, Application.Columns.Count).End(xlToLeft).Column
        FinalRow = Cells(Application.Rows.Count, 1).End(xlUp).Row
        
        Range(oListObj.Name).AutoFilter Field:=FinalCol, Criteria1:=cell.Value

        Range(Cells(1, 1), Cells(FinalRow, FinalCol)).SpecialCells(xlCellTypeVisible).Copy
        ActiveWorkbook.Sheets.Add After:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
        ActiveSheet.Paste
        ActiveSheet.Name = cell.Value & "_" & Cells(2, FinalCol - 1).Value
        ActiveSheet.UsedRange.Columns.AutoFit
        Next cell
        Next

 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
End Sub
 
Можно загнать столбец по которому происходит фильтрация в массив, поиск по массиву - если такое есть, фильтровать и выводить на лист, если нет дальше.
 
Иван Манченко, спасибо, хорошая идея, реализовала  :)
От себя добавлю, что при переходе на другой лист массив нужно чистить
Изменено: Maayun - 30.01.2022 19:39:50 (исчезло обращение)
Страницы: 1
Наверх