Transponeer kolom naar Excel-bladen met VBA

Inhoudsopgave:

Anonim

Scenario

Stel dat u een Excel-werkmap hebt. Het heeft 3 bladen. Een blad bevat 5 kolommen. Elke kolom heeft de gegevens van een andere stad. Elk blad bevat vergelijkbare 5 kolommen met verschillende gegevens van dezelfde steden.

Uitdaging:

We moeten een bestand maken dat verschillende bladen bevat voor elke unieke kolom. Elk blad moet de gegevens van hun respectieve kolom bevatten. Uiteindelijk hebben we 5 bladen met elk 3 kolommen. In zekere zin zet het kolommen om in bladen.

Logica:

Eerst moeten we een werkmap maken die voor elke kolom verschillende bladen bevat. We kunnen dit doen door naar de koppen van het eerste blad van ons originele bestand te kijken.

Vervolgens moeten we elk blad van het originele blad doorlopen om elke kolom naar de overeenkomstige bladen van de nieuwe werkmap te kopiëren.

VBA-code om kolommen in bladen om te zetten.

Laten we eerst de VBA-code bekijken om de bladen te transponeren. Ik leg het hieronder uit.

Sub TransposeColsToSheets() 'variabelen 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 nieuw bestand Set wb = Workbooks.Add 'opslaan het bestand. Vervang het pad door uw bestemming. 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 'identificatie van headers voor stadsnamen Set cols = Range(Cells(1, 1), Cells(1, lstCl)) 'loop om sheets te maken For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Volgende 'lus om kolommen naar bladen te transponeren Voor elke sh In twb.Blads Voor x = 1 Naar cols.Count sh.Activate lstRw = Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(1, x), Cells(lstRw, x)).Copy wb.Sheets("page" & x).Activeer lstCl = Cells(1, Columns.Count).End(xlToLeft).Column + 1 Range(Cells(1, lstCl ), Cells(1, lstCl)).PasteSpecial xlPasteAll Volgende x Volgende sh 'het resultaatwerkboek opslaan en sluiten wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub 

U kunt het bestand downloaden om het onmiddellijk te gebruiken of de code kopiëren om het naar wens aan te passen.

Zodra u de code uitvoert, wordt er onmiddellijk een Excel-bestand gemaakt met 5 bladen, waarbij elk blad 3 kolommen met de gegevens van dezelfde stad bevat.
Kolom naar bladen transponeren

Hoe werkt het?

In de bovenstaande voorbeeldcode zijn we ervan uitgegaan dat het bestand begint bij de eerste cel van elk blad en dat elk blad hetzelfde aantal kolommen bevat.

In de eerste paar regels code hebben we de variabelen gedeclareerd die we in de procedure nodig hebben. We hebben de kolomkoppen opgeslagen in een variabele met de naam kol.We hebben ook een .xlsx-bestand gemaakt, genaamd resultaat.xlsx.

Vervolgens hebben we een lus gebruikt om hetzelfde aantal bladen te maken in result.xlsx als in header inkol.

'loop om bladen te maken For x = 1 To cols.Count wb.Sheets.Add.Name = "pagina" & x Volgende 

Vervolgens hebben we een geneste lus gebruikt. De eerste lus is om bladen in het originele bestand te herhalen. Volgende lus voor het kopiëren van elke kolom en plakken in elk blad in het bestand results.xlsx.

Uiteindelijk slaan we de werkmap result.xlsx op en sluiten deze. En het is gedaan.

Dus ja jongens, dit is hoe je elke kolom naar een nieuw blad in Excel kunt kopiëren met VBA. Dit werd gevraagd door onze gebruikerMahmood in het opmerkingengedeelte. Ik vond dat het een artikel verdiende, zodat het voor ons allemaal beschikbaar kan zijn. Hier heb je het. Ik hoop dat het voldoende verhelderend was. Als je nog steeds twijfelt of een andere vraag hebt, vraag het dan in de comments hieronder.

Excel-blad splitsen in meerdere bestanden op basis van kolom met behulp van VBA | Deze VBA-code splitst Excel-blad op basis van unieke waarden in een opgegeven kolom. Download het werkbestand.

Schakel waarschuwingsberichten uit met VBA in Microsoft Excel 2016 | Om waarschuwingsberichten uit te schakelen die de actieve VBA-code onderbreken, gebruiken we de klasse Application.

Nieuwe werkmap toevoegen en opslaan met VBA in Microsoft Excel 2016 | Om werkmappen toe te voegen en op te slaan met VBA gebruiken we Workbooks class. Workbooks.Add voegt eenvoudig een nieuwe werkmap toe, maar…

Populaire artikels:

50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.

De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.

AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om een ​​specifieke waarde te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.

Hoe de SUMIF-functie in Excel te gebruiken | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.