Scenariu
Să presupunem că aveți un registru de lucru Excel. Are 3 foi. O foaie conține 5 coloane. Fiecare coloană are date de oraș diferite. Fiecare foaie conține 5 coloane similare cu date diferite din aceleași orașe.
Provocare:
Trebuie să creăm un fișier care conține foi diferite pentru fiecare coloană unică. Fiecare foaie trebuie să conțină datele coloanei respective. La final, vom avea 5 foi cu câte 3 coloane fiecare. Într-un fel, transpune coloanele în foi.
Logică:
În primul rând, trebuie să creăm un registru de lucru care să conțină foi diferite pentru fiecare coloană. Putem face acest lucru uitându-ne la titlurile primei foi ale fișierului nostru original.
Apoi, trebuie să parcurgem fiecare foaie a foii originale pentru a copia fiecare coloană în foile corespunzătoare ale noului registru de lucru.
Cod VBA pentru a transpune coloanele în foi.
Să vedem codul VBA pentru a transpune mai întâi foile. O explic mai jos.
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' creation new file Set wb = Workbooks.Add 'saving fișierul. Înlocuiți calea cu destinația dvs. wb.SaveAs "C: \ Users \ Manish Singh \ Desktop \ Excel Tip \ result.xlsx" Set twb = ThisWorkbook twb.Sheets (1). Activați lstCl = Celule (1, Columns.Count) .End (xlToLeft) .Column „identificarea antetelor pentru numele orașelor x Următoarea buclă pentru a transpune coloanele în coli Pentru fiecare sh În twb. Foi pentru x = 1 Pentru cols.Count sh.Activați lstRw = Celule (Rows.Count, 1). End (xlUp). Range Row (Cells (1, x), celule (lstRw, x)). Copiați wb.Sheets („pagina” & x). Activați lstCl = Celule (1, Coloane.Număr) .End (xlToLeft) .Column + 1 Range (Celule (1, lstCl ), Cells (1, lstCl)). PasteSpecial xlPasteAll Next x Next sh 'salvarea și închiderea registrului de lucru wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub
Puteți descărca fișierul preferat pentru al utiliza imediat sau puteți copia codul pentru a-l personaliza conform nevoilor dvs.
După ce rulați codul, acesta va crea imediat un fișier Excel care va avea 5 foi, fiecare foaie conținând 3 coloane din datele aceluiași oraș.
Transpuneți coloana în foi
Cum functioneazã?
În exemplul de cod de mai sus, am presupus că fișierul începe de la prima celulă a fiecărei foi și fiecare foaie conține același număr de coloane.
În primele câteva rânduri de cod, am declarat variabilele de care vom avea nevoie în procedură. Am salvat antetele coloanelor într-o variabilă numită cols.De asemenea, am creat un fișier .xlsx, numit rezultat.xlsx.
Apoi, am folosit o buclă pentru a crea același număr de foi în result.xlsx ca în antetul dincols.
'bucla pentru a crea foi Pentru x = 1 Pentru cols.Count wb.Sheets.Add.Name = "pagina" & x Următorul
Apoi, am folosit o buclă imbricată. Prima buclă este de a itera coli în fișierul original. Următoarea buclă pentru copierea fiecărei coloane și lipirea ei în fiecare foaie în fișierul results.xlsx.
În cele din urmă, salvăm registrul de lucru result.xlsx și îl închidem. Și s-a făcut.
Deci, băieți, așa puteți copia fiecare coloană într-o foaie nouă în Excel folosind VBA. Acest lucru a fost cerut de către utilizatorul nostruMahmood în secțiunea de comentarii. Am crezut că merită un articol pentru a putea fi disponibil pentru noi toți. Iată-l. Sper că a fost suficient de explicativ. Dacă aveți în continuare vreo îndoială sau orice altă întrebare, întrebați în secțiunea de comentarii de mai jos.
Împărțiți foaia Excel în mai multe fișiere pe baza coloanei folosind VBA | Acest cod VBA împarte baza de foi Excel pe valori unice într-o coloană specificată. Descărcați fișierul de lucru.
Dezactivați mesajele de avertizare folosind VBA în Microsoft Excel 2016 | Pentru a dezactiva mesajele de avertizare care întrerup codul VBA care rulează, folosim clasa Application.
Adăugați și salvați un registru de lucru nou folosind VBA în Microsoft Excel 2016 | Pentru a adăuga și a salva registre de lucru folosind VBA, folosim clasa Workbooks. Workbooks.Add adaugă cu ușurință un nou registru de lucru, totuși …
Articole populare:
50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.
Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.
COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu este nevoie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.
Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.