Obsah
Keď pracujeme s viacerými tabuľkami programu Excel, niekedy musíme kopírovať údaje z jednej tabuľky do druhej. VBA je najefektívnejšia, najrýchlejšia a najbezpečnejšia metóda na spustenie akejkoľvek operácie v programe Excel. V tomto článku vám ukážeme, ako kopírovanie a vkladanie údajov z jedného pracovného hárka do druhého v programe Excel pomocou Makro VBA .
Stiahnite si pracovný zošit
Bezplatný cvičný zošit Excel si môžete stiahnuť odtiaľto.
Kopírovanie a vkladanie z jedného pracovného hárka do druhého.xlsm
15 metód s VBA na kopírovanie a vkladanie údajov z jedného pracovného hárka do druhého v programe Excel
V tejto časti sa dozviete 15 metód, ako môžete skopírovať údaje z jedného pracovného hárka a vložiť ich do iného s VBA v programe Excel.
Vyššie je uvedený súbor údajov, ktorý sa v tomto článku bude považovať za náš príklad.
1. Vloženie makra VBA na kopírovanie a vkladanie rozsahu údajov z jedného pracovného hárka do druhého
Kroky k kopírovanie a vkladanie rozsahu údajov z jedného pracovného hárka do druhého pomocou VBA sú opísané nižšie.
Kroky:
- Na začiatku stlačte Alt + F11 na klávesnici alebo prejdite na kartu Vývojár -> Visual Basic otvoriť Editor jazyka Visual Basic .
- Vo vyskakovacom okne kódu kliknite na paneli ponúk na položku Vložiť -> Modul .
- Teraz, skopírujte nasledujúci kód a vložte do kódové okno .
Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste").Range("B2") End Sub
Váš kód je teraz pripravený na spustenie.
Táto časť kódu bude skopírujte rozsah z B2 do F9 z hárok s názvom Súbor údajov a vložte tie, ktoré sú v B2 Rozsah v CopyPaste pomenovaný hárok .
- Potom stlačte tlačidlo F5 na klávesnici alebo na paneli ponúk vyberte Run -> Run Sub/UserForm Môžete tiež jednoducho kliknúť na malá ikona Play na paneli podponúk, aby ste makro spustili.
Pozrite sa na nasledujúci obrázok.
Nakoniec sa všetky údaje z Súbor údajov je teraz skopírovaný do CopyPaste v našom zošite Excelu.
Prečítajte si viac: Excel VBA: Kopírovanie rozsahu do iného zošita
2. Makro VBA na kopírovanie a vkladanie údajov z jedného aktívneho pracovného hárka do druhého v programe Excel
V predchádzajúcej časti sme nevyžadovali aktiváciu pracovného hárka. V tejto časti sa však naučíme, ako kopírovanie a vkladanie údajov do aktívneho pracovného hárka .
Kroky:
- Rovnaký spôsob ako predtým, otvoriť Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- V okne kódu, skopírujte nasledujúci kód a vložte to.
Sub CopyPasteToAnotherActiveSheet() 'Skopírujte údaje zo zdrojového listu Sheets("Dataset").Range("B2:F9").Copy 'Aktivujte cieľový list Sheets("Paste").Activate 'Vyberte cieľový rozsah Range("B2").Select 'Vložte do cieľového ActiveSheet.Paste Application.CutCopyMode = False End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť kód, ako je znázornené vyššie, a pozrite si výsledok na nasledujúcom obrázku.
Tentoraz sa všetky údaje z Súbor údajov je teraz skopírovaný do Vložiť ktorý sme aktivovali pred kopírovaním údajov.
Prečítajte si viac: Vzorec programu Excel na kopírovanie textu z jednej bunky do iného hárka
3. Kopírovanie a vkladanie jednej bunky z jedného pracovného hárka do druhého v programe Excel pomocou makra VBA
V predchádzajúcich častiach ste sa naučili, ako kopírovať a vkladať rozsah údajov z jedného pracovného hárka do druhého. skopírujte a vložte, keď máte jeden údaj v tabuľke programu Excel.
Pozrite sa na nasledujúci obrázok. Rozsah hárok sa skladá len z jednej hodnoty.
Uvidíme, ako môžeme skopírujte a vložte túto jednu bunku do iného listu v programe Excel pomocou VBA .
Kroky:
- Ako je uvedené vyššie, otvorené Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- V okne kódu, skopírujte nasledujúci kód a vložte
Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kus kódu a všimnite si nasledujúci obrázok.
Tento jediný údaj " Kopírovať túto bunku " v Bunka B4 v Súbor údajov je teraz skopírovaný do CopyRange list v Bunka B2 .
Prečítajte si viac: Excel VBA na kopírovanie iba hodnôt do cieľa (makro, UDF a UserForm)
4. Vkladanie skopírovaných údajov z jedného pracovného hárka do druhého pomocou metódy PasteSpecial v makre Excelu
Môžete skopírovať údaje z jedného pracovného hárka a vložiť ich rôznymi spôsobmi pomocou aplikácie Excel PasteSpecial metóda s VBA Kroky na to sú uvedené nižšie.
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyPasteSpecial() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("PasteSpecial").Range("B2").PasteSpecial End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kus kódu.
Pozrite sa na obrázok vyššie. Údaje z Súbor údajov sa teraz prenáša do PasteSpecial hárku v programe Excel.
Prečítajte si viac: Špeciálna funkcia VBA Paste na kopírovanie hodnôt a formátov v programe Excel (9 príkladov)
5. Makro na kopírovanie a vkladanie údajov pod poslednú bunku z jedného pracovného hárka do druhého v programe Excel
Niektoré údaje už máme v Súbor údajov Teraz sa pozrite na nasledujúcu časť tejto časti. Teraz máme nejaké nové údaje v ďalšom hárku s názvom Posledná bunka .
Chceme tu urobiť to, že špecifické údaje o kópii (bunky B5 až F9) z Súbor údajov list a vložte tie, ktoré sú v pod poslednou bunkou tohto Posledná bunka list.
Kroky:
- Po prvé, otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Po druhé, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyPasteBelowTheLastCell() 'Nastavenie premenných Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Nastavenie premenných pre zdrojový a cieľový hárok Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Vyhľadanie posledného použitého riadku v zdrojovom hárku na základe údajov v stĺpci B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Nájdite prvý prázdny riadok v cieľovom liste na základe údajov v stĺpci B 'Vlastnosť Offset slúži na presun skopírovaných údajov o 1 riadok nižšie iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Skopírujte údaje zo zdroja a vložte ich do cieľa wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kód. Pozrite sa na obrázok nižšie.
V tomto prípade sa používa iba vybrané údaje z Súbor údajov list je teraz skopírované pod poslednú bunku v Posledná bunka list v programe Excel.
Prečítajte si viac: Vzorec na kopírovanie a vkladanie hodnôt v programe Excel (5 príkladov)
6. Makro VBA na vymazanie pracovného hárka, potom kopírovanie a vloženie do iného pracovného hárka
Čo ak máte v existujúcom hárku nesprávne údaje a chcete tam extrahovať pôvodné údaje.
Pozrite sa na nasledujúci obrázok. vymazať údaje z Jasný rozsah a uložte sem údaje z Súbor údajov hárku pomocou VBA kód.
Kroky:
- Po prvé, otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Po druhé, skopírujte nasledujúci kód a vložte do okna kódu.
Sub ClearAndCopyPasteData() 'Nastavenie premenných Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Nastavenie premenných pre zdrojový a cieľový hárok Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Vyhľadanie posledného použitého riadku v zdrojovom hárku na základe údajov v stĺpci B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Nájsť prvý prázdny riadok v cieľovom liste na základe údajov v stĺpci B 'Vlastnosť Offset slúži na presun skopírovaných údajov o 1 riadok nadol iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Vymazať údaje z cieľového rozsahu wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Skopírovať údaje zo zdroja a vložiť do cieľawsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť Pozrite sa na nasledujúci obrázok.
Predchádzajúce údaje v Jasný rozsah je teraz nahradený údajmi z Súbor údajov list.
Prečítajte si viac: Makro na kopírovanie údajov z jedného zošita do druhého na základe kritérií
7. Makro na kopírovanie a vkladanie údajov z jedného pracovného hárka do druhého pomocou funkcie Range.Copy
Teraz sa naučíme VBA kód o tom, ako kopírovanie a vkladanie údajov z jedného pracovného hárka do druhého s Range.Copy v programe Excel.
Kroky:
- Po prvé, otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Po druhé, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyWithRangeCopyFunction() 'Nastavenie premenných Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Nastavenie premenných pre zdrojový a cieľový hárok Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Skopírovanie údajov zo zdroja a vloženie do cieľa Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kus kódu a pozrite sa na nasledujúci obrázok.
Úspešne sme zduplikovali údaje z Súbor údajov hárku v Kopírovať rozsah list s Range.Copy funkcie.
Prečítajte si viac: Vzorec programu Excel na kopírovanie hodnoty bunky do inej bunky
Podobné čítania
- Excel VBA na kopírovanie riadkov do iného pracovného hárka na základe kritérií
- Použitie VBA na vkladanie hodnôt len bez formátovania v programe Excel
- Ako kopírovať a vkladať iba viditeľné bunky v programe Excel (3 jednoduché spôsoby)
- Kopírovanie a vkladanie v programe Excel nefunguje (9 dôvodov a riešenia)
- Ako skopírovať viac riadkov v programe Excel pomocou makra (4 príklady)
8. Implementácia kódu makra na duplikovanie údajov z jedného pracovného hárka do druhého pomocou vlastnosti USEDRANGE
Tentoraz sa naučíme VBA kód o tom, ako kopírovanie a vkladanie údajov z jedného pracovného hárka do druhého s UsedRange atribút v programe Excel.
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyWithUsedRange() 'Nastavenie premenných Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Nastavenie premenných pre zdrojový a cieľový hárok Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Skopírovanie údajov zo zdroja a vloženie do cieľa Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kus kódu.
Ako vidíme na obrázku vyššie, úspešne sme skopírovali a vložili údaje z Súbor údajov hárku v UsedRange list s USEDRANGE nehnuteľnosť.
Prečítajte si viac: Ako skopírovať rovnakú hodnotu do viacerých buniek v programe Excel (4 metódy)
9. Makro VBA na kopírovanie a vkladanie vybraných údajov z jedného hárku do druhého v programe Excel
Môžete kopírovanie a vkladanie iba niektorých vybraných údajov z jedného pracovného hárka do druhého s VBA Kroky na to sú uvedené nižšie.
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyPasteSelectedData() 'Nastavenie premenných Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Nastavenie premenných pre zdrojový a cieľový hárok Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Kopírovanie údajov zo zdroja wsSource.Range("B4:F7").Copy 'Vloženie údajov do cieľového hárku Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub
Váš kód je teraz pripravený na spustenie.
Tento kód bude skopírujte iba rozsah od B4 do F7 z Súbor údajov list a vložte tie, ktoré sú v B2 Rozsah v VložiťVybrané pomenovaný list .
- Ďalšie, Spustiť tento kód.
Nakoniec sa vyberú len vybrané údaje z Súbor údajov sú úspešne skopírované a vložené do Vložiť vybrané hárku v zošite Excelu.
Prečítajte si viac: Ako použiť VBA PasteSpecial a zachovať formátovanie zdroja v programe Excel
10. Kód makra na duplikovanie údajov z jedného pracovného hárka do druhého pri prvom prázdnom riadku
Tu sa dozviete, ako kopírovanie údajov z Súbor údajov list a vložte tie, ktoré sú v prvá prázdna bunka v inom pracovnom hárku v programe Excel pomocou VBA .
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte 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 teraz pripravený na spustenie.
- Ďalšie, Spustiť túto časť kódu.
Pozri obrázok vyššie. List13 bol úplne prázdny. V dôsledku toho spustený kód vložil skopírované údaje z Súbor údajov list vo veľmi prvá bunka v List13 hárku v programe Excel.
Prečítajte si viac: Kopírovanie a vkladanie hodnôt do ďalšieho prázdneho riadku pomocou Excel VBA (3 príklady)
11. Vloženie VBA na kopírovanie a vkladanie automaticky filtrovaných údajov z jedného hárku programu Excel do druhého
Môžeme filtrovanie zdrojového súboru údajov a kopírovanie a vkladanie iba filtrovaných údajov do iného pracovného hárka V tomto článku sa dozviete, ako to urobiť krok za krokom pomocou VBA .
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte 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 teraz pripravený na spustenie.
- Ďalšie, Spustiť Tento kód. Iba riadok, ktorý má " Dean ", budú filtrované a skopírované do iného listu.
Všimnite si na obrázku vyššie. Iba filtrované údaje " Dean " z B Stĺpec sa teraz skopíruje a vloží do List15 list.
Prečítajte si viac: Ako kopírovať a vkladať v programe Excel pomocou VBA (7 metód)
Podobné čítania
- Ako automaticky filtrovať a kopírovať viditeľné riadky pomocou programu Excel VBA
- Kopírovanie jedinečných hodnôt do iného pracovného hárka v programe Excel (5 metód)
- Ako skopírovať zlúčené a filtrované bunky v programe Excel (4 metódy)
- Chyba času behu 1004: Metóda PasteSpecial triedy Range zlyhala
- Ako vložiť prepojenie a transponovať v programe Excel (8 rýchlych spôsobov)
12. Vloženie riadku na spodok rozsahu, pričom sa zachová skopírovaný vzorec z vyššie uvedeného rozsahu
Keď chcete skopírovať hodnotu a zachovať v nej vzorec pri vkladaní do ďalšieho riadku, potom pomocou VBA kódu môžete úlohu ľahko vykonať.
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte 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 teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kód a pozrite sa na obrázok nižšie.
Stránka posledný riadok sa skopíruje presne tak, ako je vo vedľajšom riadku.
Prečítajte si viac: Ako automaticky skopírovať údaje z jednej bunky do druhej v programe Excel
13. VBA na replikovanie údajov z jedného listu do iného listu v inom otvorenom, ale neuloženom zošite
Všimnite si názov nášho vzorového zošita, Zdrojový zošit . Údaje skopírujeme z Súbor údajov list z tohto zošita a vložte ho do iného pracovného hárka v inom zošite s názvom Cieľový zošit to znamená. otvorené, ale zatiaľ neuložené .
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyOneFromAnotherNotSaved() Zošity("Zdrojový zošit").Pracovné listy("Dataset").Rozsah("B2:F9").Kopírovať Zošity("Cieľový zošit").Pracovné listy("List1").Rozsah("B2") End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kód.
Údaje z Súbor údajov hárku v Zdrojový zošit sa teraz kopíruje do List1 hárku v Cieľový zošit .
Prečítajte si viac: Excel VBA: Kopírovanie hodnoty bunky a vloženie do inej bunky
14. Makro na reprodukciu údajov z jedného listu do iného listu v inom otvorenom a uloženom zošite
Tentoraz budeme skopírovať údaje z Súbor údajov hárku z Zdrojový zošit a vložte do List2 pracovný hárok v Cieľový zošit Ale teraz zošit je otvorený a uložený .
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyOneFromAnotherSaved() Workbooks("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Workbooks("Destination Workbook.xlsx").Worksheets("Sheet2").Range("B2") End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kód.
Údaje z Súbor údajov hárku v Zdrojový zošit sa teraz kopíruje do List2 hárku v Cieľový zošit . A pozrite sa na názov, toto zošit bol uložený tentoraz.
Prečítajte si viac: Ako kopírovať a vkladať v programe Excel bez zmeny formátu
15. Použitie VBA na kopírovanie a vkladanie údajov z jedného pracovného hárka do iného pracovného hárka v inom uzavretom zošite
V predchádzajúcich dvoch častiach sme sa naučili, ako kopírovať a vkladať údaje z jedného pracovného hárka do druhého v inom otvorenom zošite. V tejto časti sa naučíme kód, ako kopírovanie a vkladanie údajov pri zatvorenom zošite .
Kroky:
- Najprv otvorte Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- Druhý, skopírujte nasledujúci kód a vložte do okna kódu.
Sub CopyOneFromAnotherClosed() 'Otvorenie zošita uloženého vo vašom systéme 'Zmena cesty nižšie podľa umiestnenia vášho súboru v systéme Workbooks.Open "D:\ExcelWIKI\Zložka Excel\Cielový zošit.xlsx" 'Skopíruje údaje zo zošita s názvom Zdrojový zošit a 'Vloží ich do cieľového zošita s názvom Cieľový zošit Workbooks("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Po uložení zavrieť cieľový zošit Workbooks("Destination Workbook").Close SaveChanges:=True End Sub
Váš kód je teraz pripravený na spustenie.
- Ďalšie, Spustiť tento kód.
Aj keď bol tentoraz zošit zatvorený, po vykonaní kódu sa údaje z Súbor údajov hárku v Zdrojový zošit sa teraz kopíruje do List3 hárku v Cieľový zošit .
Prečítajte si viac: Excel VBA na kopírovanie údajov z iného zošita bez otvorenia
Čo si treba zapamätať
- Metódy 1 až 14 vyžadujú, aby boli vaše zošity otvorené Pri vykonávaní makrokódov uvedených v týchto metódach nezabudnite mať otvorené zdrojový aj cieľový zošit.
- Zatiaľ čo váš zošity sú uložené, potom napíšte názov súboru s typom súboru vnútri kódu. Keď zošity nie sú uložené, potom zapíšte iba názov súboru bez typu súboru. Napríklad, ak váš zošit je uložený , potom napíšte " Cieľová destinácia. xlsx ", ale ak zošit nie je uložený , potom napíšte " Cieľová destinácia " vo vnútri kódu.
Záver
Tento článok vám ukázal, ako kopírovanie a vkladanie údajov z jedného pracovného hárka do druhého v programe Excel pomocou VBA . dúfam, že tento článok bol pre vás veľmi prínosný. Ak máte akékoľvek otázky týkajúce sa tejto témy, neváhajte sa opýtať.