@mancubus
I think 1 new workbook should be sufficient..(also in your method)
Sub M_snb()
With Workbooks.Add
For j = 1 To ThisWorkbook.Sheets(1).Cells(1).CurrentRegion.Rows.Count Step 21
Intersect(ThisWorkbook.Sheets(1).Cells(1).CurrentRegion, Rows(j).Resize(21)).Copy .Sheets(1).Cells(1)
.SaveAs "G:\OF\file_" & j & ".csv", 23
Next
.Close 0
End With
End Sub
and this might be much faster:
Sub M_snb()
sn = ThisWorkbook.Sheets(1).Cells(1).CurrentRegion
For j = 1 To UBound(sn) Step 21
c00 = ""
For jj = 1 To 21
c00 = c00 & vbLf & Join(Application.Index(sn, j), "_")
Next
CreateObject("scripting.filesystemobject").createtextfile("G:\OF\file_" & j & ".csv").write Mid(c00, 2)
Next
End Sub