Я пишу некоторый код для разделения листа Excel по определенному столбцу на отдельные рабочие книги. Мой код работает, но очень медленно (он должен создавать 28 отдельных файлов и занимает около 10 минут на файл). Что я могу сделать, чтобы он работал лучше? Есть ли способ сэкономить время расчета?
Sub Split()
Dim wswb As String
Dim wssh As String
Dim path As String
Worksheets("Sheet1").Activate
wswb = ActiveWorkbook.Name
wssh = ActiveSheet.Name
path = Worksheets("Start").Range("H6").Value
Columns("H").Copy
Worksheets("Settings").Activate
Range("A1").PasteSpecial
Columns("A").RemoveDuplicates Columns:=1, Header:=xlYes
vCounter = Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To vCounter
vFilter = Sheets("Settings").Cells(i, 1)
Sheets(wssh).Activate
ActiveWorkbook.Worksheets("Sheet1").AutoFilterMode = False
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=8, Criteria1:=vFilter
Cells.Copy
Workbooks.Add
Range("A1").PasteSpecial
Worksheets("Sheet1").Name = "OTD"
Sheets.Add After:=ActiveSheet
ActiveCell.FormulaR1C1 = ""
Sheets("Sheet2").Select
Sheets("Sheet2").Name = "PPM"
Sheets("OTD").Select
If vFilter <> "" Then
ActiveWorkbook.SaveAs path & "OTD_PPM_Report_" & Format(DateSerial(Year(Date), month(Date) - 1, 1), "mmm_yyyy") & "_" & Range("I2").Value & ".xlsx"
End If
ActiveWorkbook.Close
Workbooks(wswb).Activate
Next i
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=8
End Sub