Transponujte stĺpce do hárkov programu Excel pomocou jazyka VBA

Obsah:

Anonim

Scenár

Predpokladajme, že máte excelový zošit. Má 3 listy. Hárok obsahuje 5 stĺpcov. Každý stĺpec má iné údaje o meste. Každý list obsahuje podobných 5 stĺpcov s rôznymi údajmi rovnakých miest.

Výzva:

Musíme vytvoriť súbor, ktorý obsahuje rôzne listy pre každý jedinečný stĺpec. Každý list by mal obsahovať údaje príslušného stĺpca. Nakoniec budeme mať 5 listov s 3 stĺpcami. Svojím spôsobom transponuje stĺpce do listov.

Logika:

Najprv musíme vytvoriť zošit, ktorý obsahuje pre každý stĺpec rôzne listy. To môžeme urobiť tak, že sa pozrieme na nadpisy prvého hárka nášho pôvodného súboru.

Ďalej musíme previesť každý list pôvodného listu, aby sme skopírovali každý stĺpec do zodpovedajúcich listov nového zošita.

Kód VBA na transpozíciu stĺpcov do hárkov.

Najprv sa pozrime na kód VBA na transpozíciu listov. Vysvetľujem to nižšie.

Premenné Sub 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 súbor. Nahraďte cestu svojim cieľom. 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 Slučka „identifikujúca hlavičky pre názvy miest 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 Nasledujúca slučka na transponovanie stĺpcov do listov Pre každé sh In twb. Listy pre x = 1 Do stĺpcov. Počítať sh. Aktivovať lstRw = bunky (riadky. počet, 1). Koniec (xlUp). Rozsah riadkov (bunky (1, x), Cells (lstRw, x)). Copy wb. Sheets ("page" & x). Activate lstCl = Cells (1, Columns.Count). End (xlToLeft) .Column + 1 Range (Cells (1, lstCl ), Bunky (1, lstCl)). PasteSpecial xlPasteAll Next x Next sh 'uloženie a zatvorenie zošita výsledkov wb. Uložiť wb. Zavrieť pomocou aplikácie .DisplayAlerts = True .ScreenUpdating = True End With End Sub 

Súbor si môžete stiahnuť, aby ste ho mohli ihneď použiť, alebo si skopírovať kód a prispôsobiť ho podľa svojich potrieb.

Po spustení kódu okamžite vytvorí súbor programu Excel, ktorý bude mať 5 listov, pričom každý list obsahuje 3 stĺpce údajov rovnakého mesta.
Transponovať stĺpec do hárkov

Ako to funguje?

Vo vyššie uvedenom príklade kódu sme predpokladali, že súbor začína od prvej bunky každého listu a každý list obsahuje rovnaký počet stĺpcov.

Prvých niekoľko riadkov kódu sme deklarovali premenné, ktoré budeme v postupe potrebovať. Hlavičky stĺpcov sme uložili do premennej s názvom cols.Vytvorili sme tiež súbor .xlsx s názvom výsledok.xlsx.

Ďalej sme použili slučku na vytvorenie rovnakého počtu listov vo result.xlsx ako v hlavičke vcols.

'slučka na vytvorenie listov pre x = 1 Do stĺpcov. Počet wb.Sheets.Add.Name = "strana" & x Ďalej 

Ďalej sme použili vnorenú slučku. Prvá slučka je iterácia listov v pôvodnom súbore. Ďalšia slučka na skopírovanie každého stĺpca a vloženie do každého listu v súbore results.xlsx.

Na záver uložíme výsledok zošita.xlsx a zatvoríme ho. A je hotovo.

Takže áno, chlapci, takto môžete pomocou programu VBA skopírovať každý stĺpec do nového listu v programe Excel. Na to sa nás opýtal náš užívateľMahmood v sekcii komentárov. Myslel som si, že si to zaslúži článok, aby bol dostupný pre nás všetkých. Tu to máte. Dúfam, že to bolo dostatočne vysvetľujúce. Ak máte akékoľvek ďalšie otázky alebo pochybnosti, opýtajte sa ich v sekcii komentárov nižšie.

Rozdeľte hárok programu Excel do viacerých súborov na základe stĺpca pomocou VBA | Tento kód VBA rozdelil základný list programu Excel na jedinečné hodnoty v zadanom stĺpci. Stiahnite si pracovný súbor.

Vypnúť výstražné správy pomocou VBA v programe Microsoft Excel 2016 | Na vypnutie výstražných správ, ktoré prerušujú spustený kód VBA, používame triedu Application.

Pridať a uložiť nový zošit pomocou jazyka VBA v programe Microsoft Excel 2016 | Na pridávanie a ukladanie zošitov pomocou jazyka VBA používame triedu zošity. Zošity. Pridajte nový zošit ľahko, ale…

Populárne články:

50 skratiek programu Excel na zvýšenie produktivity | Vykonajte svoju úlohu rýchlejšie. Týchto 50 skratiek vám umožní pracovať ešte rýchlejšie v Exceli.

Funkcia VLOOKUP v programe Excel | Toto je jedna z najpoužívanejších a najobľúbenejších funkcií programu Excel, ktorá sa používa na vyhľadávanie hodnôt z rôznych rozsahov a hárkov.

COUNTIF v Exceli 2016 | Počítajte hodnoty s podmienkami pomocou tejto úžasnej funkcie. Na počítanie konkrétnej hodnoty nepotrebujete filtrovať svoje údaje. Funkcia Countif je potrebná na prípravu palubnej dosky.

Ako používať funkciu SUMIF v programe Excel | Toto je ďalšia zásadná funkcia palubnej dosky. To vám pomôže zhrnúť hodnoty za konkrétnych podmienok.