Come creare nuovi fogli per ogni riga in Excel?
Nella gestione dei dati o nei compiti di reporting, potrebbe essere necessario separare ogni record da una tabella in un proprio foglio di lavoro. Ad esempio, se mantieni un elenco di dettagli degli studenti in Excel, con ogni riga che rappresenta le informazioni di uno studente diverso, potresti voler generare un foglio separato per ogni studente, contenente i loro dati specifici. In alternativa, potresti semplicemente voler dividere ogni riga, indipendentemente dal suo contenuto, in modo che ciascuna venga inserita in un nuovo foglio di lavoro. Creare manualmente e copiare i dati in nuovi fogli può essere dispendioso in termini di tempo e soggetto a errori, specialmente se stai lavorando con un dataset di grandi dimensioni. Automatizzare questo processo risparmia tempo significativo e riduce il rischio di errori. Questa guida ti accompagna attraverso due soluzioni pratiche per creare nuovi fogli per ogni riga in Excel e spiega i pro e i contro di ciascun metodo per aiutarti a scegliere l'approccio migliore per il tuo scenario.
Crea nuovi fogli per ogni riga con il codice VBA
Crea nuovi fogli per ogni riga con l'utilità Split Data di Kutools per Excel
Crea nuovi fogli per ogni riga con il codice VBA
L'uso di VBA (Visual Basic for Applications) è un modo efficace per automatizzare compiti in Excel che altrimenti sarebbero noiosi e ripetitivi. Con VBA, puoi creare rapidamente nuovi fogli di lavoro per ogni riga dei tuoi dati, raggruppando le righe in base a una colonna (ad esempio, il nome dello studente), oppure creando un foglio per ogni singola riga indipendentemente dal contenuto. Questo approccio è ideale per gli utenti a proprio agio con l'editor VBA e che preferiscono una soluzione altamente personalizzabile. Tuttavia, richiede la modifica ed esecuzione del codice, quindi potrebbe non essere adatto agli utenti che non hanno esperienza con VBA o che non hanno il permesso di eseguire macro nel loro ambiente.
1. Premi "Alt" + "F11" per aprire la finestra Microsoft Visual Basic for Applications, che ti consente di accedere al codice VBA per automatizzare le operazioni di Excel.
2. Nella finestra Microsoft Visual Basic for Applications, clicca su Inserisci > Modulo per aggiungere un nuovo modulo di codice. Quindi copia e incolla il seguente codice nella finestra Modulo.
Codice VBA: crea un nuovo foglio per ogni riga basandosi sulla colonna
Sub parse_data()
'Update by Extendoffice 2018/3/2
Dim xRCount As Long
Dim xSht As Worksheet
Dim xNSht As Worksheet
Dim I As Long
Dim xTRrow As Integer
Dim xCol As New Collection
Dim xTitle As String
Dim xSUpdate As Boolean
Set xSht = ActiveSheet
On Error Resume Next
xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
xTitle = "A1:C1"
xTRrow = xSht.Range(xTitle).Cells(1).Row
For I = 2 To xRCount
Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
Next
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCol.Count
Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
Set xNSht = Nothing
Set xNSht = Worksheets(CStr(xCol.Item(I)))
If xNSht Is Nothing Then
Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
xNSht.Name = CStr(xCol.Item(I))
Else
xNSht.Move , Sheets(Sheets.Count)
End If
xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
xNSht.Columns.AutoFit
Next
xSht.AutoFilterMode = False
xSht.Activate
Application.ScreenUpdating = xSUpdate
End Sub
Spiegazione dei parametri e suggerimenti per l'uso:
- A1:C1 è l'intervallo dell'intestazione per la tua tabella dati. Regola questo riferimento per adattarlo alla tua area di intestazione effettiva, se necessario.
- Il codice raccoglie valori unici dalla colonna specificata (di default, colonna A). Ogni valore unico ottiene il proprio foglio di lavoro con le righe corrispondenti.
- Se la tua tabella è più larga o inizia da una riga diversa, aggiorna
xTitle
e i riferimenti delle celle di conseguenza. - Se il tuo foglio di lavoro contiene formule che fanno riferimento ad altri fogli, controlla i riferimenti dopo aver diviso.
3. Premi il tasto F5 o clicca su Esegui per eseguire il codice. Nuovi fogli di lavoro verranno creati dopo tutti i fogli esistenti nella cartella di lavoro corrente, ciascuno nominato in base al valore della colonna univoco scelto. Guarda lo screenshot qui sotto per un risultato di esempio:
Se desideri semplicemente dividere ogni riga nel suo foglio di lavoro, indipendentemente dal contenuto della colonna, puoi utilizzare il seguente codice VBA alternativo. Questo elimina la necessità di specificare una condizione di colonna.
Codice VBA: Crea direttamente un nuovo foglio per ogni riga
Sub RowToSheet()
Dim xRow As Long
Dim I As Long
With ActiveSheet
xRow = .Range("A" & Rows.Count).End(xlUp).Row
For I = 1 To xRow
Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
.Rows(I).Copy Sheets("Row " & I).Range("A1")
Next I
End With
End Sub
Dopo aver eseguito questo codice nel modulo, ogni riga dal foglio di lavoro attivo - inclusa la riga di intestazione - verrà copiata in un nuovo foglio di lavoro appena creato. Nota che la riga di intestazione viene anche duplicata; se desideri evitarlo, potresti dover eliminare o regolare manualmente i fogli di output successivamente.
Risoluzione dei problemi e suggerimenti pratici:
- Se incontri un errore come "Indice fuori intervallo", assicurati che i nomi dei fogli non contengano caratteri non validi o nomi duplicati.
- Dataset di grandi dimensioni possono risultare in un numero elevato di fogli, il che può rallentare Excel o rendere la navigazione difficoltosa. Considera se dividere per riga è necessario per tabelle estremamente grandi.
- Mantieni sempre un backup dei tuoi dati prima di eseguire il codice VBA per prevenire la perdita involontaria di dati.
Vantaggi: Gratuito; altamente personalizzabile.
Svantaggi: Richiede VBA/macros abilitati e una certa familiarità con l'editor VBA; possibilità di errori di codice con dati complessi o insoliti.
Adatto per: Utenti che necessitano di flessibilità nello scripting, e per attività una tantum o irregolari.
Crea nuovi fogli per ogni riga con l'utilità Split Data di Kutools per Excel
Se preferisci un approccio semplice e user-friendly senza scrivere codice, l'utilità Split Data di Kutools per Excel è altamente raccomandata. Questa funzione ti aiuta a dividere i dati in nuovi fogli di lavoro rapidamente con pochi clic, semplificando notevolmente il processo di gestione dei fogli di lavoro. Kutools è particolarmente utile per gli utenti che gestiscono regolarmente tabelle grandi e complesse o che preferiscono interfacce grafiche rispetto alla codifica manuale. Nota che Kutools è un componente aggiuntivo di Excel e deve essere installato in anticipo.
1. Seleziona la tabella contenente i dati che desideri dividere in fogli di lavoro individuali. Quindi, clicca sulla scheda Kutools Plus e seleziona Split Data. Consulta lo screenshot qui sotto per chiarezza:
2. Nella finestra di dialogo Dividi dati in più fogli di lavoro, scegli le impostazioni appropriate in base alle tue esigenze di divisione.
A. Per creare nuovi fogli basati sui valori delle colonne:
B. Per creare direttamente nuovi fogli per ogni riga:
Dopo l'esecuzione, verrà generata una nuova cartella di lavoro contenente tutti i nuovi fogli di lavoro - ciascuno popolato in base alle impostazioni che hai selezionato.
Creazione di nuovi fogli per ogni riga basandosi sui valori delle colonne:
Creazione di un nuovo foglio per ogni riga senza considerare i valori delle colonne:
Precauzioni e suggerimenti pratici:
- Prima di utilizzare l'utilità Split Data, assicurati che non ci siano righe vuote nella tua tabella, poiché queste possono risultare in fogli vuoti.
- Rivedi le convenzioni di denominazione dei fogli per evitare nomi duplicati o non validi; Kutools regolerà automaticamente in caso di conflitto di nomi.
- Il processo può generare un numero elevato di fogli di lavoro se la tua tabella è molto grande, quindi considera questo prima di procedere.
Vantaggi: Facile da usare senza necessità di codifica; adatto per l'elaborazione in batch e attività frequenti.
Svantaggi: Richiede l'installazione del componente aggiuntivo Kutools.
Adatto per: Tutti i livelli di utenti Excel, specialmente quelli che gestiscono la segmentazione dei dati ripetitiva.
Kutools per Excel - Potenzia Excel con oltre 300 strumenti essenziali. Goditi funzionalità AI gratuite per sempre! Ottienilo ora
Demo: Crea nuovi fogli per ogni riga con l'utilità Split Data di Kutools per Excel
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!