Transponujte sloupec do listů Excelu pomocí VBA

Obsah:

Anonim

Scénář

Předpokládejme, že máte excelový sešit. Má 3 listy. List obsahuje 5 sloupců. Každý sloupec má jiné údaje o městě. Každý list obsahuje podobných 5 sloupců s různými daty stejných měst.

Výzva:

Musíme vytvořit soubor, který obsahuje různé listy pro každý jedinečný sloupec. Každý list by měl obsahovat data příslušných sloupců. Nakonec budeme mít 5 listů po 3 sloupcích. Svým způsobem transponuje sloupce do listů.

Logika:

Nejprve musíme vytvořit sešit, který pro každý sloupec obsahuje různé listy. Můžeme to udělat tak, že se podíváme na záhlaví prvního listu našeho původního souboru.

Dále musíme projít každý list původního listu, abychom zkopírovali každý sloupec do odpovídajících listů nového sešitu.

Kód VBA k transpozici sloupců do listů.

Podívejme se nejprve na kód VBA pro transpozici listů. Vysvětluji to níže.

Dílčí proměnné TransposeColsToSheets () 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' save soubor. Nahraďte cestu svým cílem. 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 Smyčka 'identifikující záhlaví pro názvy měst 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 Další 'smyčka pro transpozici sloupců do listů Pro každý sh In twb. Listy pro x = 1 Do sloupců. Počet 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 'uložení a zavření sešitu výsledků wb. Uložit wb. Zavřít pomocí aplikace .DisplayAlerts = True .ScreenUpdating = True End With End Sub 

Soubor si můžete stáhnout, abyste jej mohli okamžitě použít, nebo zkopírovat kód a přizpůsobit jej podle svých potřeb.

Jakmile spustíte kód, okamžitě vytvoří soubor aplikace Excel, který bude mít 5 listů, přičemž každý list obsahuje 3 sloupce dat stejného města.
Transponujte sloupec do listů

Jak to funguje?

Ve výše uvedeném příkladu kódu jsme předpokládali, že soubor začíná od první buňky každého listu a každý list obsahuje stejný počet sloupců.

Prvních několik řádků kódu jsme deklarovali proměnné, které budeme v proceduře potřebovat. Záhlaví sloupců jsme uložili do proměnné s názvem cols.Vytvořili jsme také soubor .xlsx s názvem výsledek.xlsx.

Dále jsme použili smyčku k vytvoření stejného počtu listů ve result.xlsx jako v záhlaví vcols.

'smyčka pro vytvoření listů pro x = 1 Do cols.Count wb.Sheets.Add.Name = "page" & x Next 

Dále jsme použili vnořenou smyčku. První smyčkou je iterace listů v původním souboru. Další smyčka pro zkopírování každého sloupce a jeho vložení do každého listu v souboru results.xlsx.

Nakonec uložíme výsledek sešitu.xlsx a zavřeme ho. A je hotovo.

Takže jo, lidi, takto můžete zkopírovat každý sloupec do nového listu v aplikaci Excel pomocí VBA. Na to se zeptal náš uživatelMahmood v sekci komentáře. Myslel jsem, že si zaslouží článek, aby mohl být dostupný pro nás všechny. Tady to máte. Doufám, že to bylo dostatečně vysvětlující. Pokud máte stále nějaké pochybnosti nebo jakýkoli jiný dotaz, zeptejte se v sekci komentáře níže.

Rozdělit list aplikace Excel na více souborů na základě sloupce pomocí VBA | Tento kód VBA rozdělil list Excelu na jedinečné hodnoty v zadaném sloupci. Stáhněte si pracovní soubor.

Vypnout varovné zprávy pomocí VBA v aplikaci Microsoft Excel 2016 | K vypnutí varovných zpráv, které přerušují běžící kód VBA, používáme třídu Application.

Přidat a uložit nový sešit pomocí jazyka VBA v aplikaci Microsoft Excel 2016 | K přidání a uložení sešitů pomocí jazyka VBA používáme třídu Workbooks. Workbooks.Add přidává nový sešit snadno, ale…

Oblíbené články:

50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 klávesových zkratek vám umožní pracovat v Excelu ještě rychleji.

Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.

COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétní hodnoty nepotřebujete filtrovat data. Funkce Countif je nezbytná pro přípravu řídicího panelu.

Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.