Scenario
Supponiamo di avere una cartella di lavoro Excel. Ha 3 fogli. Un foglio contiene 5 colonne. Ogni colonna ha i dati di una città diversa. Ogni foglio contiene 5 colonne simili con dati diversi delle stesse città.
Sfida:
Dobbiamo creare un file che contenga fogli diversi per ogni colonna univoca. Ogni foglio dovrebbe contenere i dati della rispettiva colonna. Alla fine, avremo 5 fogli con 3 colonne ciascuno. In un certo senso, traspone le colonne in fogli.
Logica:
Innanzitutto, dobbiamo creare una cartella di lavoro che contenga fogli diversi per ogni colonna. Possiamo farlo guardando le intestazioni del primo foglio del nostro file originale.
Successivamente, dobbiamo scorrere ogni foglio del foglio originale per copiare ogni colonna nei fogli corrispondenti della nuova cartella di lavoro.
Codice VBA per trasporre le colonne in fogli.
Vediamo prima il codice VBA per trasporre i fogli. Lo spiego di seguito.
Sub TransposeColsToSheets() 'varibles Dim wb As Workbook Dim twb As Workbook Dim lstRw As Integer Dim lstCl As Integer Dim cols As Range With Application .DisplayAlerts = False .ScreenUpdating = False End With 'creating new file Set saving' il file. Sostituisci il percorso con la tua destinazione. wb.SaveAs "C:\Users\Manish Singh\Desktop\Excel Tip\result.xlsx" Set twb = ThisWorkbook twb.Sheets(1).Activate lstCl = Cells(1, Columns.Count).End(xlToLeft).Column 'identificazione delle intestazioni per i nomi delle città Set cols = Range(Cells(1, 1), Cells(1, lstCl)) 'ciclo per creare fogli For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Next 'loop per trasporre le colonne in fogli For Each sh In twb.Sheets For x = 1 To cols.Count sh.Activate lstRw = Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(1, x), Cells(lstRw, x)).Copia wb.Sheets("page" & x).Attiva lstCl = Cells(1, Columns.Count).End(xlToLeft).Column + 1 Range(Cells(1, lstCl) ), Cells(1, lstCl)).PasteSpecial xlPasteAll Next x Next sh 'salvataggio e chiusura della cartella di lavoro dei risultati wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub
Puoi scaricare il file preferito per utilizzarlo immediatamente o copiare il codice per personalizzarlo secondo le tue esigenze.
Una volta eseguito il codice, creerà immediatamente un file excel che avrà 5 fogli, con ogni foglio contenente 3 colonne dei dati della stessa città.
Trasponi colonna in fogli
Come funziona?
Nel codice di esempio sopra, abbiamo ipotizzato che il file parta dalla prima cella di ogni foglio e che ogni foglio contenga lo stesso numero di colonne.
Nelle prime righe di codice, abbiamo dichiarato le variabili che ci serviranno nella procedura. Abbiamo salvato le intestazioni delle colonne in una variabile denominata col.Abbiamo anche creato un file .xlsx, denominato risultato.xlsx.
Successivamente, abbiamo utilizzato un ciclo per creare lo stesso numero di fogli in result.xlsx come nell'intestazione incol.
'loop per creare fogli For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Next
Successivamente, abbiamo utilizzato un ciclo annidato. Il primo ciclo consiste nell'iterare i fogli nel file originale. Ciclo successivo per copiare ogni colonna e incollarla in ogni foglio nel file results.xlsx.
Alla fine, salviamo il risultato della cartella di lavoro.xlsx e lo chiudiamo. Ed è fatto.
Quindi sì ragazzi, ecco come copiare ogni colonna su un nuovo foglio in Excel usando VBA. Questo è stato chiesto dal nostro utenteMahmood nella sezione commenti. Ho pensato che meritasse un articolo in modo che possa essere disponibile per tutti noi. Eccolo qui. Spero di essere stato abbastanza esplicativo. Se hai ancora dubbi o qualsiasi altra domanda, chiedi nella sezione commenti qui sotto.
Dividi il foglio Excel in più file in base alla colonna utilizzando VBA | Questo codice VBA divide il foglio Excel in base a valori univoci in una colonna specificata. Scarica il file di lavoro.
Disattiva i messaggi di avviso utilizzando VBA in Microsoft Excel 2016 | Per disattivare i messaggi di avviso che interrompono il codice VBA in esecuzione, utilizziamo la classe Application.
Aggiungi e salva una nuova cartella di lavoro utilizzando VBA in Microsoft Excel 2016 | Per aggiungere e salvare cartelle di lavoro utilizzando VBA, utilizziamo la classe Workbooks. Cartelle di lavoro. Aggiungi aggiunge facilmente una nuova cartella di lavoro, tuttavia…
Articoli popolari:
50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.
La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.
CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.
Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.