Makro til at kopiere og indsætte fra et regneark til et andet (15 metoder)

  • Del Dette
Hugh West

Indholdsfortegnelse

Når vi har med flere Excel-ark at gøre, skal vi nogle gange kopiere data fra et regneark til et andet. Implementering af VBA er den mest effektive, hurtigste og sikreste metode til at udføre enhver operation i Excel. I denne artikel viser vi dig, hvordan du kan kopiere og indsætte data fra et regneark til et andet i Excel med VBA-makro .

Download arbejdsbog

Du kan downloade den gratis Excel-arbejdsbog til øvelser her.

Kopier og indsæt fra et regneark til et andet.xlsm

15 metoder med VBA til at kopiere og indsætte data fra et regneark til et andet i Excel

I dette afsnit lærer du 15 metoder til, hvordan du kan kopiere data fra et regneark og indsætte dem i et andet med VBA i Excel.

Ovenstående er det datasæt, som denne artikel vil tage udgangspunkt i som vores eksempel.

1. Indlejret VBA-makro til at kopiere og indsætte et datarække fra et regneark til et andet

Trinene til kopiere og indsætte en række data fra et regneark til et andet med VBA er beskrevet nedenfor.

Trin:

  • I begyndelsen skal du trykke på Alt + F11 på dit tastatur eller gå til fanen Udvikler -> Visual Basic for at åbne Visual Basic-editor .

  • I pop-up kodevinduet skal du på menulinjen klikke på Indsæt -> Modul .

  • Nu, kopier følgende kode og indsætte det i den kodevindue .
 Sub CopyPasteToAnotherSheet() Arbejdsark("Dataset").Range("B2:F9").Copy Arbejdsark("CopyPaste").Range("B2") End Sub 

Din kode er nu klar til at køre.

Dette stykke kode vil kopiere intervallet fra B2 til F9 fra den ark med navnet Datasæt og indsætte dem i B2 Område i den CopyPaste navngivet ark .

  • Derefter skal du trykke på F5 på dit tastatur eller på menulinjen vælge Kør -> Kør Sub/UserForm Du kan også bare klikke på lille Play-ikon i undermenulinjen for at køre makroen.

Se på følgende billede.

Endelig skal alle data fra Datasæt ark er nu kopieret i CopyPaste ark i vores Excel-arbejdsbog.

Læs mere: Excel VBA: Kopier område til en anden projektmappe

2. VBA-makro til at kopiere og indsætte data fra et aktivt regneark til et andet i Excel

I det foregående afsnit krævede vi ikke, at regnearket skulle aktiveres. Men i dette afsnit lærer vi, hvordan vi skal kopiere og indsætte data i et aktivt regneark .

Trin:

  • På samme måde som før, åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • I kodevinduet, kopier følgende kode og indsætte det.
 Sub CopyPasteToAnotherActiveSheet() 'Kopier data fra kildearket Sheets("Dataset").Range("B2:F9").Copy 'Aktiver destinationsarket Sheets("Paste").Activate 'Vælg destinationsområde Range("B2").Select 'Indsæt i destinationsarket ActiveSheet.Paste Application.CutCopyMode = False End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør koden som vist ovenfor og se resultatet i det følgende billede.

Denne gang er alle data fra Datasæt ark er nu kopieret i Indsæt ark, som vi aktiverede, før vi kopierede dataene.

Læs mere: Excel-formel til at kopiere tekst fra en celle til et andet ark

3. Kopier og indsæt en enkelt celle fra et regneark til et andet i Excel med VBA-makro

I de ovenstående afsnit har du lært, hvordan du kopierer og indsætter en række data fra et regneark til et andet. Nu vil du se, hvordan du kan kopiere og indsætte, når du har en enkelt oplysning i dit Excel-regneark.

Se på følgende billede, den Område ark består kun af én værdi.

Vi vil se, hvordan vi kan kopiere og indsætte denne ene celle i et andet ark i Excel med VBA .

Trin:

  • Som det fremgår ovenfor, kan åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • I kodevinduet, kopier følgende kode og indsætte
 Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør dette stykke kode og se følgende billede.

Denne ene data " Kopier denne celle " i Celle B4 i den Datasæt ark er nu kopieret i CopyRange ark i Celle B2 .

Læs mere: Excel VBA til kun at kopiere værdier til destinationen (makro, UDF og UserForm)

4. Indsæt kopierede data fra et regneark til et andet med PasteSpecial-metoden i Excel-makro

Du kan kopiere data fra et regneark og indsætte dem på forskellige måder med Excel's PasteSpecial metode med VBA Trinene til at gøre det er angivet nedenfor.

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyPasteSpecial() Arbejdsark("Dataset").Range("B2:F9").Copy Arbejdsark("PasteSpecial").Range("B2").PasteSpecial End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør dette stykke kode.

Se på ovenstående billede. Data fra den Datasæt ark overføres nu i den PasteSpecial ark i Excel.

Læs mere: VBA Indsæt Special til at kopiere værdier og formater i Excel (9 eksempler)

5. Makro til at kopiere og indsætte data under den sidste celle fra et regneark til et andet i Excel

Vi har allerede nogle data i Datasæt ark (vist i indledningen). Se nu på den kommende del af dette afsnit. Vi har nu nogle nye data i et andet ark ved navn Sidste celle .

Det, vi ønsker at gøre her, er, at vi vil kopiering af specifikke data (cellerne B5 til F9) fra den Datasæt ark og indsætte dem i under den sidste celle af denne Sidste celle ark.

Trin:

  • For det første skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • For det andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyPasteBelowTheLastCell() 'Indstil variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Indstil variabler for kilde- og destinationsark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Find den sidst anvendte række i kildearket baseret på data i kolonne B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Find første tomme række i destinationsarket baseret på data i kolonne B 'Offset-egenskaben skal flytte de kopierede data 1 række ned iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Kopier data fra kilden og indsæt dem i destinationsarket wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør denne kode. Se billedet nedenfor.

Her er det kun den udvalgte data fra den Datasæt ark er nu kopieret under den sidste celle i den Sidste celle ark i Excel.

Læs mere: Formel til at kopiere og indsætte værdier i Excel (5 eksempler)

6. VBA-makro til at rydde regneark først og derefter kopiere og indsætte til et andet regneark

Hvad hvis du har forkerte data i dit eksisterende ark, og du vil udtrække de oprindelige data derinde.

Se på følgende billede. Vi vil slette dataene fra Klar rækkevidde ark og gemmer her dataene fra Datasæt ark med VBA kode.

Trin:

  • For det første skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • For det andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub ClearAndCopyPasteData() 'Indstil variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Indstil variabler for kilde- og destinationsark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Find den sidst anvendte række i kildearket baseret på data i kolonne B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Find den første tomme række i destinationsarket baseret på data i kolonne B 'Offset-egenskaben skal flytte de kopierede data 1 række ned iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Ryd data fra destinationsområdet wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Kopier data fra kilden og indsæt dem i destinationenwsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør dette stykke kode. Se på følgende billede.

De tidligere data i den Klar rækkevidde ark er nu erstattet af data fra Datasæt ark.

Læs mere: Makro til at kopiere data fra en projektmappe til en anden baseret på kriterier

7. Makro til at kopiere og indsætte data fra et regneark til et andet med funktionen Range.Copy

Nu vil vi lære den VBA kode om, hvordan man kopiere og indsætte data fra et regneark til et andet med den Range.Copy funktion i Excel.

Trin:

  • For det første skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • For det andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyWithRangeCopyFunction() 'Indstil variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Indstil variabler for kilde- og destinationsark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Kopier data fra kilden og indsæt dem i destinationen Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør dette stykke kode og se på følgende billede.

Vi har med succes kopieret data fra Datasæt ark i den Kopier rækkevidde ark med den Range.Copy funktion.

Læs mere: Excel-formel til at kopiere celleværdi til en anden celle

Lignende læsninger

  • Excel VBA til at kopiere rækker til et andet regneark baseret på kriterier
  • Brug VBA til kun at indsætte værdier uden formatering i Excel
  • Sådan kopieres og indsættes kun synlige celler i Excel (3 nemme måder)
  • Kopier og indsæt virker ikke i Excel (9 grunde & løsninger)
  • Sådan kopieres flere rækker i Excel ved hjælp af makro (4 eksempler)

8. Implementer makrokode til at duplikere data fra et regneark til et andet med USEDRANGE-egenskaben

Denne gang vil vi lære den VBA kode om, hvordan man kopiere og indsætte data fra et regneark til et andet med den UsedRange attributten i Excel.

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyWithUsedRange() 'Indstil variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Indstil variabler for kilde- og destinationsark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Kopier data fra kilden og indsæt dem i destinationen Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør dette stykke kode.

Som vi kan se på billedet ovenfor, har vi kopieret og indsat data fra Datasæt ark i den UsedRange ark med den USEDRANGE ejendom.

Læs mere: Sådan kopieres den samme værdi i flere celler i Excel (4 metoder)

9. VBA-makro til at kopiere og indsætte udvalgte data fra et ark til et andet i Excel

Du kan kopiere og indsætte kun nogle udvalgte data fra et regneark til et andet med VBA Trinene til at gøre dette er vist nedenfor.

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyPasteSelectedData() 'Indstil variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Indstil variabler for kilde- og destinationsark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Kopier data fra kilden wsSource.Range("B4:F7").Copy 'Indsæt data i destinationsark Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub 

Din kode er nu klar til at køre.

Denne kode vil kun kopiere området fra B4 til F7 fra den Datasæt ark og indsætte dem i B2 Område i den PasteSelected navngivet ark .

  • Næste, Kør denne kode.

Endelig er det kun de udvalgte data fra den Datasæt ark er kopieret og indsat i Indsæt markeret ark i Excel-arbejdsbogen.

Læs mere: Sådan anvendes VBA PasteSpecial og Behold kildeformatering i Excel

10. Makrokode til at duplikere data fra et regneark til et andet ved den første tomme række

Her vil vi se, hvordan man kopiere data fra den Datasæt ark og indsætte dem i første tomme celle i et andet regneark i Excel med VBA .

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp))).Copy Sheet13.Range("A65536").End(xlUp) End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør denne del af koden.

Se ovenstående billede. Ark13 var helt tom. Som følge heraf indsatte den udførte kode de kopierede data fra den Datasæt ark i den meget første celle i den Ark13 ark i Excel.

Læs mere: Kopier og indsæt værdier til næste tomme række med Excel VBA (3 eksempler)

11. Embed VBA til at kopiere og indsætte de automatisk filtrerede data fra et Excel-ark til et andet

Vi kan filtrere kildedatasættet og kun kopiere og indsætte de filtrerede data i et andet regneark i Excel. Følg denne artikel for at lære, hvordan du gør det trin for trin med VBA .

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 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 

Din kode er nu klar til at køre.

  • Næste, Kør denne kode. Kun den række, der har " Dean " i det, vil blive filtreret og kopieret i et andet ark.

Bemærk i ovenstående billede, at kun de filtrerede data " Dean " fra den B-kolonne er nu kopieret og indsat i Ark15 ark.

Læs mere: Sådan kopieres og indsættes i Excel ved hjælp af VBA (7 metoder)

Lignende læsninger

  • Sådan autofiltreres og kopieres synlige rækker med Excel VBA
  • Kopier unikke værdier til et andet regneark i Excel (5 metoder)
  • Sådan kopieres sammenlagte og filtrerede celler i Excel (4 metoder)
  • Køretidsfejl 1004: PasteSpecial-metoden for Range Class mislykkedes
  • Sådan indsætter du link og transponerer i Excel (8 hurtige måder)

12. Indsæt en række nederst i et område, mens du beholder den kopierede formel fra det ovenstående område

Når du ønsker at kopiere en værdi og beholde formlen i den mens du indsætter det i en anden række, og derefter med VBA kode kan du nemt udføre opgaven.

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør denne kode og se på billedet nedenfor.

den sidste række kopieres nøjagtigt som den er i rækken ved siden af.

Læs mere: Sådan kopieres data automatisk fra en celle til en anden i Excel automatisk

13. VBA til at replikere data fra et ark til et andet ark i en anden åben, men ikke gemt arbejdsbog

Læg mærke til navnet på vores eksempelarbejdsbog, Arbejdsbog om kilden Vi kopierer dataene fra den Datasæt ark fra denne projektmappe og indsæt det i et andet regneark i en anden projektmappe ved navn Arbejdsbog om destination det vil sige åben, men endnu ikke gemt .

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyOneFromAnotherNotSaved() Arbejdsbøger("Source Workbook").Worksheets("Dataset").Range("B2:F9").Copy Arbejdsbøger("Destination Workbook").Worksheets("Sheet1").Range("B2") End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør denne kode.

Data fra den Datasæt ark i den Arbejdsbog om kilden er nu kopieret i Ark1 ark i den Arbejdsbog om destination .

Læs mere: Excel VBA: Kopier celleværdi og indsæt til en anden celle

14. Makro til at reproducere data fra et ark til et andet ark i en anden åben og gemt projektmappe

Denne gang vil vi kopiere dataene fra den Datasæt ark fra den Arbejdsbog om kilden og indsætte det i den Ark2 regneark i den Arbejdsbog om destination . Men nu er det arbejdsmappen er åben og gemt .

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyOneFromAnotherSaved() Arbejdsbøger("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Arbejdsbøger("Destination Workbook.xlsx").Worksheets("Sheet2").Range("B2") End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør denne kode.

Data fra den Datasæt ark i den Arbejdsbog om kilden er nu kopieret i Ark2 ark i den Arbejdsbog om destination . og se på navnet, dette arbejdsbogen blev gemt denne gang.

Læs mere: Sådan kopieres og indsættes i Excel uden at ændre formatet

15. Anvend VBA til at kopiere og indsætte data fra et regneark til et andet regneark i en anden lukket arbejdsbog

I de to foregående afsnit lærte vi, hvordan vi kopierer og indsætter data fra et regneark til et andet regneark i et andet åbent regneark. I dette afsnit vil vi lære koden til, hvordan vi kopiere og indsætte data, når arbejdsmappen er lukket .

Trin:

  • Først skal du åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Andet, kopier følgende kode og indsætte det i kodevinduet.
 Sub CopyOneFromAnotherClosed() 'For at åbne den arbejdsbog, der er gemt på dit system 'ændre stien nedenfor i overensstemmelse med placeringen af din fil i dit system Workbooks.Open "D:\ExcelWIKI\Excel Folder\Destination Workbook.xlsx" 'Kopierer data fra arbejdsbogen med navnet Source Workbook og 'Indsætter dem i målarbejdsbogen med navnet Destination Workbook Workbooks("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Luk målarbejdsbogen efter at have gemt Workbooks("Destination Workbook").Close SaveChanges:=True End Sub 

Din kode er nu klar til at køre.

  • Næste, Kør denne kode.

Selv om regnearket denne gang blev lukket, men stadig efter udførelsen af koden, vil data fra den Datasæt ark i den Arbejdsbog om kilden er nu kopieret i Ark3 ark i den Arbejdsbog om destination .

Læs mere: Excel VBA til at kopiere data fra en anden projektmappe uden at åbne

Ting at huske

  • Metode 1 til 14 kræver, at dine arbejdsbøger er åbne Når du udfører de makrokoder, der er vist i disse metoder, skal du huske at holde både kilde- og destinationsarbejdsmappen åben.
  • Mens din arbejdsbøger gemmes, så skriv filnavnet med filtypen inde i koden. Når den arbejdsbøger ikke gemmes, så skriv kun filnavnet uden angivelse af filtypen. Hvis f.eks. din arbejdsbogen er gemt , skriv derefter " Destination. xlsx ", men hvis den arbejdsmappen er ikke gemt , skriv derefter " Destination " i koden.

Konklusion

Denne artikel viste dig, hvordan du kan kopiere og indsætte data fra et regneark til et andet i Excel med VBA Jeg håber, at denne artikel har været til stor gavn for dig. Du er velkommen til at spørge, hvis du har spørgsmål til emnet.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.