Прежде всего, избегайте выбора таблиц и ячеек: Worksheets(i).Activate
, Rows(j).Select
. Это самый трудоемкий. Обычно его можно заменить прямыми ссылками.
Далее, не повторяйте Worksheets(i).AutoFilterMode = False
внутри l oop для j
, достаточно будет сделать это один раз до For j = 2 To lastrow
.
В-третьих, не копируйте построчно. Вместо этого скопируйте весь лист:
Dim lastCell As Range
Set lastCell = Sheets("Sheet1").Range("A1").SpecialCells(xlLastCell)
Sheets("Sheet1").Range(Range("A1"), lastCell).Copy