Для копирования буфера вставки в новый файл добавьте новый файл (вместо листа):
Set fNew = = Workbooks.Add(xlWBATWorksheet)
...
fNew.SaveAs Filename:=<file specification>
Paste:=xlPasteValues
буквально копирует значения без форматирования, комментариев, границ и т. Д. Для сохраненияИсходный формат, просто используйте ActiveSheet.Paste Destination:=Range("A1")
.Если - по какой-либо причине - это не работает, вы можете попробовать это:
.Range("A1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Для копирования только отфильтрованных строк используйте это:
Range("A1:S3000").SpecialCells(xlCellTypeVisible).Copy
fNew.Sheets(1).Range("A1").PasteSpecial