Obsah
Když pracujeme s více listy aplikace Excel, musíme někdy zkopírovat data z jedné tabulky do druhé. Implementace VBA je nejefektivnější, nejrychlejší a nejbezpečnější metodou pro spuštění jakékoli operace v aplikaci Excel. V tomto článku vám ukážeme, jak na to. kopírování a vkládání dat z jednoho pracovního listu do druhého. v aplikaci Excel pomocí Makro VBA .
Stáhnout pracovní sešit
Bezplatný cvičný sešit aplikace Excel si můžete stáhnout zde.
Kopírování a vkládání z jednoho pracovního listu do jiného.xlsm
15 metod kopírování a vkládání dat z jednoho pracovního listu do jiného v aplikaci Excel pomocí VBA
V této části se dozvíte 15 metod, jak můžete zkopírovat data z jednoho listu a vložit je do jiného. s VBA v aplikaci Excel.
Výše je uveden soubor dat, který bude v tomto článku považován za náš příklad.
1. Vložení makra VBA pro kopírování a vkládání rozsahu dat z jednoho pracovního listu do druhého
Kroky k kopírování a vkládání rozsahu dat z jednoho pracovního listu do druhého pomocí VBA jsou popsány níže.
Kroky:
- Na začátku stiskněte Alt + F11 na klávesnici nebo přejděte na kartu Vývojář -> Visual Basic otevřít Editor jazyka Visual Basic .
- Ve vyskakovacím okně kódu klikněte na panelu nabídek na možnost Insert -> Modul .
- Nyní, zkopírujte následující kód a vložit do kódové okno .
Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste").Range("B2") End Sub
Váš kód je nyní připraven ke spuštění.
Tato část kódu zkopírujte rozsah z B2 do F9 z list s názvem Datová sada a vložit do B2 Rozsah v CopyPaste pojmenovaný list .
- Pak stiskněte tlačítko F5 na klávesnici nebo na panelu nabídek vyberte možnost Run -> Run Sub/UserForm . Můžete také kliknout na malá ikona Play na panelu podnabídek spustíte makro.
Podívejte se na následující obrázek.
Nakonec se všechna data z Datová sada list je nyní zkopírován do CopyPaste v našem sešitě Excelu.
Přečtěte si více: Excel VBA: Kopírování rozsahu do jiného sešitu
2. Makro VBA pro kopírování a vkládání dat z jednoho aktivního pracovního listu do jiného v aplikaci Excel
V předchozí části jsme nevyžadovali aktivaci pracovního listu. V této části se však naučíme, jak na to. kopírování a vkládání dat do aktivního pracovního listu. .
Kroky:
- Stejným způsobem jako dříve, otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- V okně kódu, zkopírujte následující kód a vložit to.
Sub CopyPasteToAnotherActiveSheet() 'Zkopírujte data ze zdrojového listu Sheets("Dataset").Range("B2:F9").Copy 'Aktivujte cílový list Sheets("Paste").Activate 'Vyberte cílový rozsah Range("B2").Select 'Vložte do cílového ActiveSheet.Paste Application.CutCopyMode = False End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit kód, jak je uvedeno výše, a výsledek vidíte na následujícím obrázku.
Tentokrát se všechna data z Datová sada list je nyní zkopírován do Vložit list, který jsme aktivovali před kopírováním dat.
Přečtěte si více: Vzorec aplikace Excel pro kopírování textu z jedné buňky do jiného listu
3. Kopírování a vkládání jedné buňky z jednoho pracovního listu do jiného v aplikaci Excel pomocí makra VBA
V předchozích kapitolách jste se naučili kopírovat a vkládat rozsah dat z jednoho listu do druhého. Nyní se dozvíte, jak zkopírujte a vložte, když máte jeden údaj v tabulce Excelu.
Podívejte se na následující obrázek. Rozsah list se skládá pouze z jedné hodnoty.
Uvidíme, jak můžeme zkopírujte a vložte tuto buňku do jiného listu v aplikaci Excel pomocí VBA .
Kroky:
- Jak je uvedeno výše, otevřené Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- V okně kódu, zkopírujte následující kód a vložit
Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit tento kus kódu a všimněte si následujícího obrázku.
Tento jediný údaj " Kopírovat tuto buňku " v Buňka B4 v Datová sada list je nyní zkopírován do CopyRange list v Buňka B2 .
Přečtěte si více: Excel VBA pro kopírování pouze hodnot do cíle (makro, UDF a UserForm)
4. Vkládání zkopírovaných dat z jednoho pracovního listu do jiného pomocí metody PasteSpecial v makru aplikace Excel
Můžete zkopírovat data z jednoho listu a vložit je. různými způsoby pomocí aplikace Excel PasteSpecial metodou s VBA Kroky k tomu jsou uvedeny níže.
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub CopyPasteSpecial() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("PasteSpecial").Range("B2").PasteSpecial End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spusťte tento kus kódu.
Podívejte se na obrázek výše. Údaje z Datová sada list se nyní přenáší do PasteSpecial v aplikaci Excel.
Přečtěte si více: Speciální funkce VBA Vložit pro kopírování hodnot a formátů v aplikaci Excel (9 příkladů)
5. Makro pro kopírování a vkládání dat pod poslední buňku z jednoho pracovního listu do jiného v aplikaci Excel
Některé údaje již máme v Datová sada Nyní se podívejte na další část této části. Nyní máme nová data v dalším listu s názvem Poslední buňka .
To, co chceme udělat, je, že budeme kopírování specifických údajů (buňky B5 až F9) z Datová sada list a vložit ty, které jsou v pod poslední buňkou tohoto Poslední buňka list.
Kroky:
- Za prvé, otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Za druhé, zkopírujte následující kód a vložit do okna kódu.
Sub CopyPasteBelowTheLastCell() 'Nastavení proměnných Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Nastavení proměnných pro zdrojový a cílový list Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Nalezení posledního použitého řádku ve zdrojovém listu na základě dat ve sloupci B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Najděte první prázdný řádek v cílovém listu na základě dat ve sloupci B 'Vlastnost Offset slouží k posunutí kopírovaných dat o 1 řádek dolů iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Zkopírujte data ze zdroje a vložte je do cíle wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spusťte Podívejte se na obrázek níže.
Zde je pouze vybrané údaje z Datová sada list je nyní zkopírované pod poslední buňku v Poslední buňka list v aplikaci Excel.
Přečtěte si více: Vzorec pro kopírování a vkládání hodnot v aplikaci Excel (5 příkladů)
6. Makro VBA pro vymazání pracovního listu a následné zkopírování a vložení do jiného pracovního listu
Co když máte ve stávajícím listu nesprávná data a chcete z něj extrahovat původní data.
Podívejte se na následující obrázek. vymazat data z Jasný rozsah a uložte sem data z Datová sada list pomocí VBA kód.
Kroky:
- Za prvé, otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Za druhé, zkopírujte následující kód a vložit do okna kódu.
Sub ClearAndCopyPasteData() 'Nastavení proměnných Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Nastavení proměnných pro zdrojový a cílový list Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Nalezení posledního použitého řádku ve zdrojovém listu na základě dat ve sloupci B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Najít první prázdný řádek v cílovém listu na základě dat ve sloupci B 'Vlastnost Offset slouží k posunutí kopírovaných dat o 1 řádek dolů iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Vymazat data z cílového rozsahu wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Zkopírovat data ze zdroje a vložit do cílewsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit Podívejte se na následující obrázek.
Předchozí údaje v Jasný rozsah je nyní nahrazen údaji z Datová sada list.
Přečtěte si více: Makro pro kopírování dat z jednoho sešitu do druhého na základě kritérií
7. Makro pro kopírování a vkládání dat z jednoho pracovního listu do druhého pomocí funkce Range.Copy
Nyní se naučíme VBA kód o tom, jak kopírování a vkládání dat z jednoho pracovního listu do druhého. s Range.Copy v aplikaci Excel.
Kroky:
- Za prvé, otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Za druhé, zkopírujte následující kód a vložit do okna kódu.
Sub CopyWithRangeCopyFunction() 'Nastavení proměnných Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Nastavení proměnných pro zdrojový a cílový list Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Zkopírování dat ze zdroje a vložení do cíle Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit tento kus kódu a podívejte se na následující obrázek.
Úspěšně jsme duplikovali data z Datová sada list v Kopírovat rozsah list s Range.Copy funkce.
Přečtěte si více: Vzorec aplikace Excel pro kopírování hodnoty buňky do jiné buňky
Podobná čtení
- Kopírování řádků aplikace Excel VBA do jiného pracovního listu na základě kritérií
- Použití VBA pro vkládání hodnot pouze bez formátování v aplikaci Excel
- Jak kopírovat a vkládat pouze viditelné buňky v aplikaci Excel (3 snadné způsoby)
- Kopírování a vkládání v aplikaci Excel nefunguje (9 důvodů a řešení)
- Jak kopírovat více řádků v aplikaci Excel pomocí makra (4 příklady)
8. Implementace kódu makra pro duplikaci dat z jednoho listu do druhého pomocí vlastnosti USEDRANGE
Tentokrát se naučíme VBA kód o tom, jak kopírování a vkládání dat z jednoho pracovního listu do druhého. s UsedRange atribut v aplikaci Excel.
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub CopyWithUsedRange() 'Nastavení proměnných Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Nastavení proměnných pro zdrojový a cílový list Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Zkopírování dat ze zdroje a vložení do cíle Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit tento kus kódu.
Jak vidíme na obrázku výše, úspěšně jsme zkopírovali a vložili data z okna Datová sada list v UsedRange list s USEDRANGE nemovitosti.
Přečtěte si více: Jak zkopírovat stejnou hodnotu do více buněk v aplikaci Excel (4 metody)
9. Makro VBA pro kopírování a vkládání vybraných dat z jednoho listu do druhého v aplikaci Excel
Můžete kopírování a vkládání pouze některých vybraných dat z jednoho pracovního listu do druhého. s VBA Kroky k tomu jsou uvedeny níže.
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub CopyPasteSelectedData() 'Nastavení proměnných Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Nastavení proměnných pro zdrojový a cílový list Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Zkopírování dat ze zdroje wsSource.Range("B4:F7").Copy 'Vložení dat do cílového listu Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub
Váš kód je nyní připraven ke spuštění.
Tento kód bude zkopírujte pouze rozsah od B4 do F7. z Datová sada list a vložit do B2 Rozsah v VložitVybrané pojmenovaný list .
- Další, Spustit tento kód.
Nakonec se použijí pouze vybraná data z Datová sada listu úspěšně zkopírovány a vloženy do pole Vložit vybrané list v sešitě aplikace Excel.
Přečtěte si více: Jak použít VBA PasteSpecial a zachovat formátování zdroje v aplikaci Excel
10. Kód makra pro duplikaci dat z jednoho pracovního listu do druhého na prvním prázdném řádku
Zde se podíváme, jak kopírování dat z Datová sada list a vložit ty, které se nacházejí v první prázdná buňka v jiném pracovním listu v aplikaci Excel pomocí VBA .
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536").End(xlUp) End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit tuto část kódu.
Viz obrázek výše. List13 byl úplně prázdný. V důsledku toho spustil kód vložil zkopírovaná data z pole Datová sada list v samotném první buňka v List13 v aplikaci Excel.
Přečtěte si více: Kopírování a vkládání hodnot do dalšího prázdného řádku pomocí aplikace Excel VBA (3 příklady)
11. Vložení VBA pro kopírování a vkládání automaticky filtrovaných dat z jednoho listu aplikace Excel do druhého
Můžeme filtrovat zdrojový soubor dat a zkopírovat a vložit pouze filtrovaná data do jiného pracovního listu. v Excelu. V tomto článku se dozvíte, jak to udělat krok za krokem pomocí VBA .
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Option Explicit Sub AutoFilter() Range("B4:B101").AutoFilter 1, "Dean" Range("B4:F9").Copy Sheet17.Range("B" & Rows.Count).End(xlUp)(2) Range("B4").AutoFilter End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit tento kód. Pouze řádek, který má " Dean ", budou filtrovány a zkopírovány do jiného listu.
Všimněte si na obrázku výše. Pouze filtrovaná data " Dean " z Sloupec B je nyní zkopírován a vložen do List15 list.
Přečtěte si více: Jak kopírovat a vkládat v aplikaci Excel pomocí VBA (7 metod)
Podobná čtení
- Jak automaticky filtrovat a kopírovat viditelné řádky pomocí aplikace Excel VBA
- Kopírování jedinečných hodnot do jiného pracovního listu v aplikaci Excel (5 metod)
- Jak kopírovat sloučené a filtrované buňky v aplikaci Excel (4 metody)
- Chyba času běhu 1004: Metoda PasteSpecial třídy Range selhala
- Jak vložit odkaz a transponovat v aplikaci Excel (8 rychlých způsobů)
12. Vložení řádku na dno rozsahu při zachování zkopírovaného vzorce z výše uvedeného rozsahu
Když chcete zkopírovat hodnotu a zachovat v ní vzorec při vkládání do dalšího řádku, pak pomocí VBA kódu můžete úlohu snadno provést.
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spusťte tento kód a podívejte se na obrázek níže.
Na stránkách poslední řádek je zkopírován přesně tak, jak je ve vedlejším řádku.
Přečtěte si více: Jak automaticky kopírovat data z jedné buňky do druhé v aplikaci Excel
13. Replikace dat z jednoho listu do jiného listu v jiném otevřeném, ale neuloženém sešitu pomocí VBA
Všimněte si názvu našeho ukázkového sešitu, Zdrojový sešit . Zkopírujeme data z Datová sada list z tohoto sešitu a vložte jej do jiného listu v jiném sešitě s názvem Pracovní sešit k cíli to znamená. otevřené, ale zatím neuložené .
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub CopyOneFromAnotSaved() Sešity("Zdrojový sešit").Pracovní listy("Datový soubor").Rozsah("B2:F9").Kopírovat Sešity("Cílový sešit").Pracovní listy("List1").Rozsah("B2") End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit tento kód.
Údaje z Datová sada list v Zdrojový sešit se nyní kopíruje do List1 list v Pracovní sešit k cíli .
Přečtěte si více: Excel VBA: Kopírování hodnoty buňky a vložení do jiné buňky
14. Makro pro reprodukci dat z jednoho listu do jiného listu v jiném otevřeném a uloženém sešitu
Tentokrát budeme zkopírovat data z Datová sada list z Zdrojový sešit a vložit do List2 v pracovním listu Pracovní sešit k cíli ... ale nyní sešit je otevřen a uložen .
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub CopyOneFromAnotherSaved() Sešity("Zdrojový sešit.xlsm").Pracovní listy("Datový soubor").Rozsah("B2:F9").Kopírovat _ Sešity("Cílový sešit.xlsx").Pracovní listy("List2").Rozsah("B2") End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spusťte tento kód.
Údaje z Datová sada list v Zdrojový sešit se nyní kopíruje do List2 list v Pracovní sešit k cíli . A podívejte se na název. sešit byl uložen tentokrát.
Přečtěte si více: Jak kopírovat a vkládat v aplikaci Excel bez změny formátu
15. Použití VBA ke kopírování a vkládání dat z jednoho pracovního listu do jiného pracovního listu v jiném uzavřeném sešitě
V předchozích dvou částech jsme se naučili, jak kopírovat a vkládat data z jednoho listu do druhého v jiném otevřeném sešitě. V této části se naučíme kód, jak kopírovat a vkládat data z jednoho listu do druhého v jiném otevřeném sešitě. kopírování a vkládání dat při zavření sešitu. .
Kroky:
- Nejprve otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- Druhý, zkopírujte následující kód a vložit do okna kódu.
Sub CopyOneFromAnotherClosed() 'Chcete-li otevřít sešit uložený v systému, 'změňte níže uvedenou cestu podle umístění souboru v systému Workbooks.Open "D:\ExcelWIKI\Složka Excel\Cílový sešit.xlsx" 'Zkopíruje data ze sešitu s názvem Zdrojový sešit a 'vloží je do cílového sešitu s názvem Cílový sešit Workbooks("SourceSešit").Pracovní listy("Datový soubor").Rozsah("B2:F9").Kopírovat Sešity("Cílový sešit").Pracovní listy("List3").Rozsah("B2") 'Po uložení zavřít cílový sešit Sešity("Cílový sešit").Zavřít Uložitzměny:=True End Sub
Váš kód je nyní připraven ke spuštění.
- Další, Spustit tento kód.
I když byl tentokrát sešit uzavřen, přesto se po provedení kódu data ze sešitu. Datová sada list v Zdrojový sešit se nyní kopíruje do List3 list v Pracovní sešit k cíli .
Přečtěte si více: Kopírování dat z jiného sešitu bez otevření pomocí aplikace Excel VBA
Na co nezapomenout
- Metody 1 až 14 vyžadují otevření sešitů. . Při provádění makrokódů uvedených v těchto metodách nezapomeňte mít otevřené zdrojový i cílový sešit.
- Zatímco vaše sešity jsou uloženy, pak napište název souboru s typem souboru uvnitř kódu. Když sešity nejsou uloženy, pak zapište pouze název souboru. bez typu souboru. například pokud váš sešit je uložen , pak napište " Cílová destinace. xlsx ", ale pokud sešit není uložen , pak napište " Cílová destinace " uvnitř kódu.
Závěr
Tento článek vám ukázal, jak kopírování a vkládání dat z jednoho pracovního listu do druhého. v aplikaci Excel pomocí VBA . doufám, že pro vás byl tento článek velmi přínosný. Neváhejte se zeptat, pokud máte k tématu nějaké dotazy.