Někdy se stává rutinní práce kopírování dat z více listů pro stejný sloupec. Tomuto kroku se lze vyhnout pomocí automatizace. Pokud chcete vytvořit konsolidovaný list po zkopírování dat ze sloupce každého listu do jednoho listu, měli byste si přečíst tento článek.
V tomto článku vytvoříme makro pro kopírování dat z konkrétního sloupce a vložení do nového listu.
Nezpracovaná data pro tento příklad se skládají z údajů o zaměstnancích ve formě sešitu aplikace Excel obsahujícího tři listy s odděleními, osobními a kontaktními údaji zaměstnanců.
Pro kopírování dat z různých listů do nového listu jsme vytvořili makro „CopyColumns“. Toto makro lze spustit kliknutím na tlačítko „Spustit makro“ na listu „Hlavní“.
Makro „CopyColumns“ vloží nový list s názvem „Master“ za list „Main“. „Hlavní“ list bude obsahovat konsolidovaná data ze všech listů.
Vysvětlení kódu
Worksheets.Add (po: = Pracovní listy ("Hlavní"))
Výše uvedený kód se používá k vložení nových listů za „hlavní“ list.
Pokud Source.Name "Master" a Source.Name "Main" Pak
Konec If
Výše uvedený kód slouží k omezení kopírování dat z listu „Hlavní“ a „Hlavní“.
Source.UsedRange.Copy Destination.Columns (poslední)
Výše uvedený kód se používá ke kopírování dat ze zdrojového listu do cílového listu.
Pro každý zdroj v ThisWorkbook.Worksheets
Pokud Source.Name = "Master" Pak
MsgBox "Hlavní list již existuje"
Ukončit dílčí
Konec If
další
Výše uvedený kód slouží ke kontrole, zda list „Hlavní“ již v sešitu existuje. Makro zastaví provádění, pokud již v sešitu existuje list „Hlavní“.
Pro kód prosím postupujte níže
Volba Explicitní dílčí kopie Sloupce () Dim zdroj jako list Dim cíl jako list Dim Dim jako dlouhý Application.ScreenUpdating = False 'Kontrola, zda list „Master“ již existuje v sešitu pro každý zdroj v ThisWorkbook.Worksheets If Source.Name = „Master“ Potom MsgBox „Hlavní list již existuje“ Ukončit Sub End If Next 'Vkládání nových listů do sešitu Nastavit cíl = Pracovní listy.Přidat (po: = Pracovní listy („Hlavní“))' Přejmenování listu Cíl.Název = „Hlavní" Smyčka prostřednictvím pracovních listů v sešitu Pro každý zdroj v ThisWorkbook.Worksheets If Source.Name "Master" And Source.Name "Main" Then 'Finding the last column from the destination sheet Last = Destination.Range ("A1"). SpecialCells ( xlCellTypeLastCell) .Column If Last = 1 Then 'Pasting the data in the destination sheet Source.UsedRange.Copy Destination.Columns (Last) Else Source.UsedRange.Copy Destination.Columns (Last + 1) End If End If Next Columns.AutoFit Application.ScreenUpdating = True End Sub
Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail