In questo articolo, creeremo una macro per dividere i dati per un numero specifico di righe.

Abbiamo dati grezzi nel foglio “RawData”. Vogliamo suddividere questi dati in più fogli.

ArrowRawData

ArrowMain

Prima di eseguire la macro, dobbiamo specificare il numero di righe richieste in ogni foglio.

ArrowOutput

Spiegazione del codice

CntRows = Cint (Sheets (“Main”). TextBox1.Value)

Il codice sopra viene utilizzato per ottenere il conteggio del numero di fogli richiesti in un foglio.

LastRow = .Range (“A” & .Rows.Count) .End (xlUp) .Row Il codice precedente viene utilizzato per ottenere il numero di riga dell’ultima cella.

Sheets.Add after: = Sheets (Sheets.Count)

Il codice sopra viene utilizzato per aggiungere un nuovo foglio dopo l’ultimo foglio.

Range (“A” & n) .Resize (CntRows, LastColumn) .Copy Range (“A1”)

Il codice sopra viene utilizzato per copiare il numero specificato di righe in un nuovo foglio di lavoro.

Segui sotto per il codice

Option Explicit

Sub SplitDataToMultipleSheets()

'Declaring variables

Dim LastRow As Long, n As Long, CntRows As Long

Dim LastColumn As Integer

'Getting count of number of rows required in one sheet

CntRows = CInt(Sheets("Main").TextBox1.Value)

'Disabling screen updates

Application.ScreenUpdating = False

With Sheets("RawData")



'Getting row number and column number of last cell

LastRow = .Range("A" & .Rows.Count).End(xlUp).Row

LastColumn = .Range("A1").SpecialCells(xlCellTypeLastCell).Column



'Looping through data in the sheet

For n = 1 To LastRow Step CntRows



'Adding new worksheet

Sheets.Add after:=Sheets(Sheets.Count)

'Copying data to new worksheet

.Range("A" & n).Resize(CntRows, LastColumn).Copy Range("A1")

Next n



.Activate

End With

'Enabling screen updates

Application.ScreenUpdating = True

End Sub

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]