Makro pro kopírování a vkládání z jednoho pracovního listu do druhého (15 metod)

  • Sdílet Toto
Hugh West

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.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.