Нужно именно решение средствами VBA, ctrl+C не предлагать
Процедура в какой-то момент фильтрует диапазон напр., A1:H100.
Условию соответствуют строки 2;3;10;22. Их надо скопировать на другой лист. Или же скопировать набор диапазонов:
A2:H2
A3:H3
A10:H10
A22:H22
Потом другие фильтры. Условия фильтрации произвольные, соответственно, заранее не известно, какие строки попадут в выборку.
Как скопировать именно эти строки, а не, например, A1:H22?
Как вариант - вот вам код, который копирует именно отфильтрованные строки, затем добавляет лист и вставляет скопированный результат на него. Перед применением выделите таблицу с фильтром.
Sub Copy_MyData()
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
End Sub
Более подробно о работе с листами и ячейками, а так же о специальном классе SpecialCells смотрите в справке по VBA, найдет много интересного и полезного. В частности, с помощью SpecialCells можно определить динамически границы диапазона, чтобы не привязываться к нему жестко.