Sisukord
Kui me tegeleme mitme Exceli lehega, peame mõnikord kopeerima andmeid ühest tabelist teise. Rakendades VBA on kõige tõhusam, kiirem ja turvalisem meetod mis tahes toimingute teostamiseks Excelis. Selles artiklis näitame teile, kuidas teha andmete kopeerimine ja kleepimine ühelt töölehelt teisele töölehele Excelis koos VBA makro .
Lae alla töövihik
Tasuta Exceli harjutusvihiku saate alla laadida siit.
Kopeerimine ja kleepimine ühest töölehest teise.xlsm
15 meetodit VBA-ga andmete kopeerimiseks ja kleepimiseks ühest töölehest teise Excelis
Selles jaotises saate teada 15 meetodit, kuidas saate kopeerida andmeid ühest töölehest ja kleepida need teise töölehte koos VBA Excelis.
Ülaltoodud on andmestik, mida käesolevas artiklis käsitletakse meie näitena.
1. Embed VBA makro andmete vahemiku kopeerimiseks ja kleepimiseks ühelt töölehelt teisele töölehele
Sammud, et andmete vahemiku kopeerimine ja kleepimine ühest töölehest teise VBA abil on kirjeldatud allpool.
Sammud:
- Alguses vajutage Alt + F11 klaviatuuril või mine vahekaardile Arendaja -> Visual Basic avada Visual Basic toimetaja .
- Avakuva koodiaknas klõpsake menüüribal nuppu Insert -> Moodul .
- Nüüd, kopeeri järgmine kood ja paste see sisse koodiaken .
Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste").Range("B2") End Sub
Teie kood on nüüd valmis käivitamiseks.
See kooditükk kopeeri vahemik B2-st F9-ni alates leht nimega Andmekogum ja kleebi need B2-sse Range in the CopyPaste nimeline leht .
- Seejärel vajutage F5 klaviatuuril või valige menüüribalt Run -> Run Sub/UserFormi käivitamine Võite ka lihtsalt klõpsata väike Play ikoon allmenüüribal makro käivitamiseks.
Vaadake järgmist pilti.
Lõpuks, kõik andmed, mis on saadud Andmekogum leht on nüüd kopeeritud CopyPaste leht meie Exceli töövihikus.
Loe edasi: Excel VBA: vahemiku kopeerimine teise töövihikusse
2. VBA makro andmete kopeerimiseks ja kleepimiseks ühest aktiivsest töölehest teise Excelis
Eelmises jaotises ei nõudnud me töölehe aktiveerimist. Kuid selles jaotises õpime, kuidas andmete kopeerimine ja kleepimine aktiivsel töölehel .
Sammud:
- Samamoodi nagu varem, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Koodiaknas, kopeeri järgmine kood ja paste seda.
Sub CopyPasteToAnotherActiveSheet() 'Kopeeri andmed lähtelehest Sheets("Dataset").Range("B2:F9").Copy 'Aktiveeri sihtleht Sheets("Paste").Activate 'Vali sihtleht Range("B2").Select 'Sisestage sihtlehte ActiveSheet.Paste Application.CutCopyMode = False End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita koodi, nagu eespool näidatud, ja vaata tulemust järgmisel pildil.
Seekord on kõik andmed, mis pärinevad Andmekogum leht on nüüd kopeeritud Paste leht, mille aktiveerisime enne andmete kopeerimist.
Loe edasi: Exceli valem, et kopeerida tekst ühest lahtrist teisele lehele
3. Ühe lahtri kopeerimine ja kleepimine ühest töölehest teise Exceli VBA makroga
Eelnevates punktides õppisite, kuidas kopeerida ja kleepida andmevaldkondi ühelt töölehelt teisele. Nüüd näete, kuidas kopeeri ja kleebi, kui sul on üksikud andmed oma Exceli tabelis.
Vaadake järgmist pilti Range leht koosneb ainult ühest väärtusest.
Me näeme, kuidas me saame kopeeri ja kleebi see üks lahter teisele lehele Excelis koos VBA .
Sammud:
- Nagu eespool näidatud, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Koodiaknas, kopeeri järgmine kood ja paste
Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see kooditükk ja märkame järgmist pilti.
See üksikud andmed " Kopeeri see lahter " in Lahter B4 aastal Andmekogum leht on nüüd kopeeritud CopyRange leht sisse Lahter B2 .
Loe edasi: Excel VBA ainult väärtuste kopeerimiseks sihtkohta (makro, UDF ja UserForm)
4. Kopeeritud andmete kleepimine ühest töölehest teisele töölehele koos PasteSpecial meetodiga Exceli makrosüsteemis
Saate kopeerida andmeid ühest töölehest ja kleepida need sisse erinevatel viisidel Exceli abil PasteSpecial meetodiga VBA Selleks vajalikud sammud on esitatud allpool.
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyPasteSpecial() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("PasteSpecial").Range("B2").PasteSpecial End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see kooditükk.
Vaadake ülaltoodud pilti. Andmed Andmekogum leht on nüüd üle kantud PasteSpecial leht Excelis.
Loe edasi: VBA Paste Special Exceli väärtuste ja vormingute kopeerimiseks (9 näidet)
5. Makro andmete kopeerimiseks ja kleepimiseks Exceli ühest töölehest viimasest lahtrist teise lahtrisse
Meil on juba mõned andmed Andmekogum leht (näidatud sissejuhatavas osas). Nüüd vaadake selle osa järgmist osa. Meil on nüüd mõned uued andmed teisel lehel nimega Viimane rakk .
Mida me tahame siin teha, on see, et me hakkame konkreetsete andmete kopeerimine (lahtrid B5-F9) alates Andmekogum leht ja paste need, mis on viimase lahtri all sellest Viimane rakk leht.
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyPasteBelowTheLastCell() 'Muutujate määramine Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Lähte- ja sihtlehtede muutujate määramine Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Viimati kasutatud rea leidmine lähtelehel B veeru andmete põhjal iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Leia sihtlehe esimene tühi rida B veeru andmete põhjal 'Offset omadus on kopeeritud andmete liigutamine 1 rea võrra allapoole iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Kopeeri andmed allikast ja kleebi sihtlehele wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita seda koodi. Vaadake allolevat pilti.
Siin on ainult valitud andmed Andmekogum leht on nüüd kopeeritud viimase lahtri alla Viimane rakk leht Excelis.
Loe edasi: Valem Exceli väärtuste kopeerimiseks ja kleepimiseks (5 näidet)
6. VBA makro, et kõigepealt kustutada tööleht, seejärel kopeerida ja kleepida teisele töölehele
Mis siis, kui teil on valed andmed olemasoleval lehel ja te soovite seal olevad algsed andmed välja võtta.
Vaadake järgmist pilti. Me kustutada andmed Selge vahemik leht ja salvestada siia andmed, mis pärinevad Andmekogum leht VBAga kood.
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub ClearAndCopyPasteData() 'Muutujate määramine Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Lähte- ja sihtlehtede muutujate määramine Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Viimati kasutatud rea leidmine lähtelehel B veeru andmete põhjal iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Leia sihtlehe esimene tühi rida veeru B andmete põhjal 'Offset omadus on kopeeritud andmete liigutamine 1 rea võrra allapoole iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Tühista andmed sihtkoha vahemikust wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Koopia andmed allikast ja kleepida sihtkohas.wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see kooditükk. Vaadake järgmist pilti.
Varasemad andmed, mis on esitatud Selge vahemik leht on nüüd asendatud andmetega, mis pärinevad Andmekogum leht.
Loe edasi: Makro andmete kopeerimiseks ühest töövihikust teise kriteeriumide alusel
7. Makro andmete kopeerimiseks ja kleepimiseks ühelt töölehelt teisele töölehele funktsiooniga Range.Copy
Nüüd õpime me VBA kood, kuidas andmete kopeerimine ja kleepimine ühelt töölehelt teisele töölehele koos Range.Copy funktsioon Excelis.
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyWithRangeCopyFunction() 'Muutujate määramine Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Lähte- ja sihtlehtede muutujate määramine Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Andmete kopeerimine allikast ja kleepimine sihtkohta Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita seda kooditükki ja vaadake järgmist pilti.
Me oleme edukalt dubleerinud andmeid Andmekogum leht Kopeeri vahemik leht koos Range.Copy funktsioon.
Loe edasi: Exceli valem, et kopeerida lahtri väärtus teise lahtrisse
Sarnased lugemised
- Exceli VBA ridade kopeerimiseks teisele töölehele kriteeriumide alusel
- Kasutage VBA-d, et kleepida Excelis ainult väärtusi ilma vormindamiseta
- Kuidas kopeerida ja kleepida ainult Exceli nähtavaid lahtreid (3 lihtsat viisi)
- Kopeerimine ja kleepimine ei tööta Excelis (9 põhjust & Lahendused)
- Kuidas kopeerida mitu rida Excelis makro abil (4 näidet)
8. Makrokoodi rakendamine andmete dubleerimiseks ühelt töölehelt teisele töölehele USEDRANGE-omadusega
Seekord õpime VBA kood, kuidas andmete kopeerimine ja kleepimine ühelt töölehelt teisele töölehele koos UsedRange atribuut Excelis.
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyWithUsedRange() 'Muutujate määramine Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Lähte- ja sihtlehtede muutujate määramine Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Andmete kopeerimine allikast ja kleepimine sihtlehele Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see kooditükk.
Nagu näeme ülaltoodud pildil, oleme edukalt kopeerinud ja kleepinud andmed alates Andmekogum leht UsedRange leht koos USEDRANGE vara.
Loe edasi: Kuidas kopeerida sama väärtus mitmesse lahtrisse Excelis (4 meetodit)
9. VBA makro valitud andmete kopeerimiseks ja kleepimiseks ühest lehest teise Excelis
Saate kopeerida ja kleepida ainult mõned valitud andmed ühelt töölehelt teisele töölehele koos VBA . Selle tegemiseks vajalikud sammud on näidatud allpool.
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyPasteSelectedData() 'Muutujate määramine Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Lähte- ja sihtlehtede muutujate määramine Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Andmete kopeerimine allikast wsSource.Range("B4:F7").Copy 'Andmete kleepimine sihtkohta Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub
Teie kood on nüüd valmis käivitamiseks.
See kood on kopeerida ainult vahemik B4-F7 alates Andmekogum leht ja kleebi need B2-sse Range in the PasteSelected nimeline leht .
- Järgmine, Käivita see kood.
Lõpuks, ainult valitud andmed, mis pärinevad Andmekogum leht on edukalt kopeeritud ja kleebitud dokumendis Paste Valitud Exceli töövihiku leht.
Loe edasi: Kuidas rakendada VBA PasteSpeciali ja säilitada Exceli allikavormingut
10. Makrokood andmete dubleerimiseks ühelt töölehelt teisele töölehele esimesel tühjal real
Siin näeme, kuidas andmete kopeerimine alates Andmekogum leht ja paste need, kes on esimene tühi lahter teisel töölehel Excelis koos VBA .
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536").End(xlUp) End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see koodiplokk.
Vt ülaltoodud pilti. Leht13 oli täiesti tühi. Selle tulemusena kleebis täidetav kood kopeeritud andmed sisse alates Andmekogum lehe väga esimene lahter aastal Leht13 leht Excelis.
Loe edasi: Väärtuste kopeerimine ja kleepimine Exceli VBAga järgmisele tühjale reale (3 näidet)
11. Embed VBA, et kopeerida ja kleepida automaatselt filtreeritud andmeid ühest Exceli lehest teise lehte
Me saame filtreerida lähteandmestik ning kopeerida ja kleepida ainult filtreeritud andmed teisele töölehele. Excelis. Jälgi seda artiklit, et õppida, kuidas seda samm-sammult teha koos VBA .
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
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
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita Ainult rida, millel on " Dean ", filtreeritakse ja kopeeritakse teisele lehele.
Märkige ülaltoodud pildil. Ainult filtreeritud andmed " Dean " alates B veerg on nüüd kopeeritud ja kleebitud Leht15 leht.
Loe edasi: Kuidas kopeerida ja kleepida Excelis VBA abil (7 meetodit)
Sarnased lugemised
- Kuidas Exceli VBA abil nähtavate ridade automaatset filtreerimist ja kopeerimist kasutada
- Unikaalsete väärtuste kopeerimine Exceli teisele töölehele (5 meetodit)
- Kuidas kopeerida ühendatud ja filtreeritud lahtrid Excelis (4 meetodit)
- Käitusaegne viga 1004: Range-klassi PasteSpecial meetod ebaõnnestus
- Kuidas kleepida link ja transponeerida Excelis (8 kiiret viisi)
12. Liita rida vahemiku alumisse ossa, säilitades samal ajal ülalpool olevast vahemikust kopeeritud valemi
Kui soovite kopeerida väärtus ja hoida valemit selle sees kleepimise ajal teise rea, siis koos VBA koodiga saate ülesannet hõlpsasti täita.
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita seda koodi ja vaadake allolevat pilti.
The viimane rida kopeeritakse täpselt sellisena, nagu see on selle kõrval olevas reas.
Loe edasi: Kuidas kopeerida andmeid ühest lahtrist teise Excelis automaatselt
13. VBA andmete kopeerimiseks ühelt lehelt teisele lehele teises avatud, kuid mitte salvestatud töövihikusse
Pange tähele meie näite töövihiku nime, Allikas töövihik Me kopeerime andmed Andmekogum leht sellest töövihikust ja kleepige see teise töölehte teises töövihikus nimega Sihtkoha töövihik mis on avatud, kuid ei ole veel salvestatud .
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyOneFromAnotherNotSaved() Workbooks("Source Workbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet1").Range("B2") End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see kood.
Andmed, mis pärinevad Andmekogum leht Allikas töövihik on nüüd kopeeritud Leht1 leht Sihtkoha töövihik .
Loe edasi: Excel VBA: lahtri väärtuse kopeerimine ja kleepimine teise lahtrisse
14. Makro andmete reprodutseerimiseks ühelt lehelt teisele lehele teises avatud ja salvestatud töövihikusse
Seekord me andmete kopeerimine alates Andmekogum leht alates Allikas töövihik ja paste see sisse Leht2 tööleht Sihtkoha töövihik Aga nüüd on töövihik on avatud ja salvestatud .
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyOneFromAnotherSaved() Workbooks("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Workbooks("Destination Workbook.xlsx").Worksheets("Sheet2").Range("B2") End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see kood.
Andmed, mis pärinevad Andmekogum leht Allikas töövihik on nüüd kopeeritud Leht2 leht Sihtkoha töövihik Ja vaadake nime, see töövihik salvestati seekord.
Loe edasi: Kuidas kopeerida ja kleepida Excelis ilma formaati muutmata
15. Rakendage VBA-d andmete kopeerimiseks ja kleepimiseks ühest töölehest teisele töölehele teises suletud tööraamatus
Kahes eelmises osas õppisime, kuidas kopeerida ja kleepida andmeid ühest töölehest teise avatud töövihikusse. Selles osas õpime koodi, kuidas andmete kopeerimine ja kleepimine, kui töövihik on suletud .
Sammud:
- Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
- Teiseks, kopeeri järgmine kood ja paste see koodiaknasse.
Sub CopyOneFromAnotherClosed() 'Süsteemis salvestatud töövihiku avamiseks 'muudame alloleva tee vastavalt faili asukohale süsteemis Workbooks.Open "D:\ExcelWIKI\Excel Folder\Destination Workbook.xlsx" 'Kopeerib andmed töövihikust nimega Source Workbook ja 'kleebib need sihttöövihikusse nimega Destination Workbook Workbooks("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Sulge sihttöövihik pärast salvestamist Workbooks("Destination Workbook").Close SaveChanges:=True End Sub
Teie kood on nüüd valmis käivitamiseks.
- Järgmine, Käivita see kood.
Kuigi seekord oli töövihik suletud, kuid ikkagi pärast koodi täitmist on andmed alates Andmekogum leht Allikas töövihik on nüüd kopeeritud Leht3 leht Sihtkoha töövihik .
Loe edasi: Exceli VBA andmete kopeerimiseks teisest töövihikust ilma avamata
Asjad, mida meeles pidada
- Meetodid 1 kuni 14 nõuavad, et teie töövihikud oleksid avatud. Neis meetodites näidatud makrokoodide täitmisel ärge unustage, et nii lähte- kui ka sihttöövihikud oleksid avatud.
- Kuigi teie töövihikud salvestatakse, siis kirjutage faili nimi koos failitüübiga koodi sees. Kui töövihikuid ei salvestata, siis kirjutatakse ainult faili nimi ilma faili tüübita. Näiteks, kui teie töövihik on salvestatud , siis kirjuta " Sihtkoht. xlsx ", kuid kui töövihik ei ole salvestatud , siis kirjuta " Sihtkoht " koodi sees.
Kokkuvõte
See artikkel näitas teile, kuidas andmete kopeerimine ja kleepimine ühelt töölehelt teisele töölehele Excelis koos VBA . ma loodan, et see artikkel oli teile väga kasulik. Küsige julgelt, kui teil on küsimusi selle teema kohta.