Overfør kolonne til Excel -ark ved hjælp af VBA

Indholdsfortegnelse:

Anonim

Scenarie

Antag, at du har en Excel -projektmappe. Den har 3 ark. Et ark indeholder 5 kolonner. Hver kolonne har en anden bys data. Hvert ark indeholder lignende 5 kolonner med forskellige data fra de samme byer.

Udfordring:

Vi skal oprette en fil, der indeholder forskellige ark for hver unik kolonne. Hvert ark skal indeholde deres respektive kolonnenes data. Til sidst vil vi have 5 ark med 3 kolonner hver. På en måde transponerer det kolonner i ark.

Logik:

Først skal vi oprette en projektmappe, der indeholder forskellige ark for hver kolonne. Vi kan gøre dette ved at se på det første arks overskrifter i vores originale fil.

Dernæst skal vi gå gennem hvert ark i det originale ark for at kopiere hver kolonne til den nye projektmappes tilsvarende ark.

VBA -kode til at omsætte kolonner til ark.

Lad os se VBA -koden for først at transponere arkene. Jeg forklarer det herunder.

Sub TransposeColsToSheets () 'variabler 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' create new file Set wb = Workbooks.Add 'saving filen. Erstat stien med din destination. wb.SaveAs "C: \ Users \ Manish Singh \ Desktop \ Excel Tip \ result.xlsx" Indstil twb = ThisWorkbook twb.Sheets (1) .Aktiver lstCl = Celler (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 Næste 'loop for at transponere kolonner til ark For hver sh In twb. Sheets For x = 1 To cols.Count sh.Activate lstRw = Cells (Rows.Count, 1). End (xlUp) .Row Range (Cells (1, x), Celler (lstRw, x)). Kopier wb.Sheets ("side" & x) .Aktiver lstCl = Celler (1, Columns.Count) .End (xlToLeft) .Column + 1 Range (Celler (1, lstCl) ), Celler (1, lstCl)). PasteSpecial xlPasteAll Næste x Næste sh 'gemmer og lukker resultatbogen wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub 

Du kan downloade filen til at bruge den med det samme eller kopiere koden for at tilpasse den efter dine behov.

Når du kører koden, opretter den straks en excel -fil med 5 ark, hvor hvert ark indeholder 3 kolonner med den samme bys data.
Overfør kolonne til ark

Hvordan virker det?

I ovenstående eksempelkode har vi antaget, at filen starter fra den første celle i hvert ark, og hvert ark indeholder det samme antal kolonner.

I de første få kodelinjer har vi erklæret de variabler, vi skal bruge i proceduren. Vi har gemt kolonneoverskrifterne i en variabel, der hedder cols.Vi har også oprettet en .xlsx -fil, navngivet resultat. xlsx.

Dernæst har vi brugt en loop til at oprette det samme antal ark i result.xlsx som i header incols.

'loop for at oprette ark For x = 1 Til cols.Count wb.Sheets.Add.Name = "side" & x Næste 

Dernæst har vi brugt en indlejret sløjfe. Den første sløjfe er at iterere ark i den originale fil. Næste loop for at kopiere hver kolonne og indsætte den i hvert ark i results.xlsx -filen.

I sidste ende gemmer vi projektmappens resultat. Xlsx og lukker det. Og det er gjort.

Så ja fyre, sådan kan du kopiere hver kolonne til et nyt ark i excel ved hjælp af VBA. Dette blev spurgt af vores brugerMahmood i kommentarfeltet. Jeg syntes, det fortjente en artikel, så den kan være tilgængelig for os alle. Her har du det. Jeg håber, det var forklarende nok. Hvis du stadig er i tvivl eller andre forespørgsler, så spørg i kommentarfeltet herunder.

Opdel Excel -ark i flere filer baseret på kolonne ved hjælp af VBA | Denne VBA -kode deler excelarkbase på unikke værdier i en specificeret kolonne. Download arbejdsfilen.

Slå advarselsmeddelelser fra ved hjælp af VBA i Microsoft Excel 2016 | For at deaktivere advarselsmeddelelser, der afbryder den kørende VBA -kode, bruger vi applikationsklassen.

Tilføj og gem ny arbejdsmappe ved hjælp af VBA i Microsoft Excel 2016 | For at tilføje og gemme projektmapper ved hjælp af VBA bruger vi Workbooks -klassen. Workbooks.Add tilføjer dog let en ny projektmappe …

Populære artikler:

50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje får dig til at arbejde endnu hurtigere i Excel.

VLOOKUP -funktionen i Excel | Dette er en af ​​de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.

COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.

Sådan bruges SUMIF -funktion i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.