Colonna Trasposizione di fogli Excel che utilizzano VBA
Scenario
Supponi di avere una cartella di lavoro Excel. Dispone di 3 fogli. Un foglio contiene 5 colonne. Ogni colonna ha 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 unica. 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 i titoli del primo foglio del nostro file originale.
Successivamente, è necessario 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 wb = Workbooks.Add 'saving the file. Replace the path with your destination. 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 'identfying headers for city names Set cols = Range(Cells(1, 1), Cells(1, lstCl)) 'loop to create sheets For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Next 'loop to transpose columns to sheets 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)).Copy wb.Sheets("page" & x).Activate lstCl = Cells(1, Columns.Count).End(xlToLeft).Column + 1 Range(Cells(1, lstCl), Cells(1, lstCl)).PasteSpecial xlPasteAll Next x Next sh 'saving and closing the result workbook wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub
Puoi scaricare il file qui sotto per usarlo immediatamente o copiare il codice per personalizzarlo secondo le tue necessità.
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à.
`link: /wp-content-uploads-2019-12-Transpose-Column-To-sheets.xls [
Transpose Column To Sheets]
Come funziona?
Nel codice di esempio sopra, abbiamo assunto che il file inizi dalla prima cella di ogni foglio e ogni foglio contenga lo stesso numero di colonne.
Nelle prime righe di codice abbiamo dichiarato le variabili di cui avremo bisogno nella procedura. Abbiamo salvato le intestazioni delle colonne in una variabile denominata cols, abbiamo anche creato un file .xlsx, denominato result.xlsx *.
Successivamente, abbiamo utilizzato un ciclo per creare lo stesso numero di fogli in result.xlsx come in header incols.
'loop to create sheets 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, stiamo salvando la cartella di lavoro result.xlsx e chiudendola. Ed è fatto.
Quindi sì ragazzi, è così che puoi copiare ogni colonna in un nuovo foglio in Excel usando VBA. Questo è stato chiesto dal nostro utente Mahmoodin nella sezione commenti.
Ho pensato che meritasse un articolo in modo che possa essere disponibile per tutti noi. Ecco qua. Spero sia stato abbastanza esplicativo. Se hai ancora dubbi o qualsiasi altra domanda, chiedi nella sezione commenti qui sotto.
Articoli correlati:
Scarica il file di lavoro.
link: / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Disattiva i messaggi di avviso usando VBA in Microsoft Excel 2016]
| Per disattivare i messaggi di avviso che interrompono il codice VBA in esecuzione, utilizziamo la classe Application.
link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Aggiungi e salva una nuova cartella di lavoro usando VBA in Microsoft Excel 2016]
| Per aggiungere e salvare cartelle di lavoro utilizzando VBA utilizziamo la classe Cartelle di lavoro. Workbooks.Add aggiunge facilmente una nuova cartella di lavoro, tuttavia …
Articoli popolari:
link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività]
| Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.
link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel]
| Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare valori da diversi intervalli e fogli. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
| Contare i valori con le condizioni utilizzando questa straordinaria funzione.
Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.
link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel]
| Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.