Καλημέρα
Στο Sheet1 ενός βιβλίου, έχουμε περιοχές με δεδομένα.
Κάθε περιοχή, αρχίζει από την επόμενη γραμμή, που τελειώνει η προηγούμενη.
Παράδειγμα: πρώτη: γραμμή 1 - 20
δεύτερη: γραμμή 21 - 40 κοκ
Το
πλάτος κάθε περιοχής, είναι αδιάφορο - (ν) στήλες
Οι περιοχές, πρέπει να έχουν κεφαλίδες, στην
πρώτη γραμμή τους,
ή να είναι «γεμάτες» με δεδομένα, όσον αφορά
τουλάχιστον την πρώτη γραμμή τους.
Κώδικας:
Sub CreateWBsByRngs()
Dim sRow As Long
Dim eRow As Long
Dim eCol As Long
Dim fRow As Long
Dim i As Integer
Dim FName As String
sRow = 1
eRow = 20
fRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To fRow / 20
eCol = Sheet1.Cells(sRow, Columns.Count).End(xlToLeft).Column
Sheet1.Range(Cells(sRow, 1), Cells(eRow, eCol)).Copy
Workbooks.Add
ActiveSheet.Paste
FName = "testBook" & i
ActiveWorkbook.SaveAs Filename:=FName & ".xlsx"
ActiveWindow.Close
sRow = sRow + 20
eRow = eRow + 20
Next i
End Sub
Ο κώδικας:
Δημιουργεί, τόσα αρχεία .xlsx στην επιφάνεια εργασίας,
ή όπου έχουμε ορίσει να αποθηκεύονται εξ' ορισμού στον υπολογιστή μας,
όσες και οι περιοχές που υπάρχουν, στο Sheet1 του μητρικού βιβλίου.
Το όνομα του νέου αρχείου είναι testBook + ένας αύξων αριθμός από το 1 έως (χ) - αριθμός περιοχών.
Στα νέα αρχεία, κάθε περιοχή, έχει επικολληθεί στο κελί a1.