Поскольку в листах Excel содержится более 1 миллиона строк, всегда полезно ограничивать диапазон, на который мы воздействуем:
Sheets.Add After:=Sheets(Sheets.Count)
With Sheets(1)
Intersect(.Range("A:I"), .UsedRange).Copy Sheets(Sheets.Count).Range("A1")
End With
или даже быстрее, если нам нужно только вставить значения:
Sheets.Add After:=Sheets(Sheets.Count)
With Sheets(1)
With Intersect(.Range("A:I"), .UsedRange)
Sheets(Sheets.Count).Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End With