Makro för att kopiera och klistra in från ett arbetsblad till ett annat (15 metoder)

  • Dela Detta
Hugh West

Innehållsförteckning

När vi arbetar med flera Excel-ark måste vi ibland kopiera data från ett kalkylblad till ett annat. Implementera VBA är den mest effektiva, snabbaste och säkraste metoden för att utföra alla operationer i Excel. I den här artikeln kommer vi att visa dig hur du kan kopiera och klistra in data från ett arbetsblad till ett annat i Excel med VBA-makro .

Ladda ner arbetsboken

Du kan ladda ner den kostnadsfria Excel-arbetsboken för övningar här.

Kopiera och klistra in från ett arbetsblad till ett annat.xlsm

15 metoder med VBA för att kopiera och klistra in data från ett arbetsblad till ett annat i Excel

I det här avsnittet får du lära dig 15 metoder för hur du kan kopiera data från ett kalkylblad och klistra in dem i ett annat med VBA i Excel.

Ovan är det dataset som kommer att användas som exempel i den här artikeln.

1. Bädda in ett VBA-makro för att kopiera och klistra in ett datarum från ett kalkylblad till ett annat

Stegen för att kopiera och klistra in ett intervall av data från ett kalkylblad till ett annat med VBA beskrivs nedan.

Steg:

  • I början trycker du på Alt + F11 på tangentbordet eller gå till fliken Utvecklare -> Visual Basic för att öppna Redigerare för Visual Basic .

  • I popup-kodfönstret klickar du i menyraden på Infoga -> Modul .

  • Nu, kopiera följande kod och pasta den i den kodfönster .
 Sub CopyPasteToAnotherSheet() Arbetsblad("Dataset").Range("B2:F9").Copy Arbetsblad("CopyPaste").Range("B2") End Sub 

Din kod är nu redo att köras.

Denna kod kommer att kopiera intervallet från B2 till F9 från ark med namnet Dataset och klistra in dem i B2 Utbudet i den Kopiera och klistra in namngivet blad .

  • Tryck sedan på F5 på tangentbordet eller välj i menyraden Kör -> Kör Sub/UserForm Du kan också bara klicka på liten Play-ikon i undermenyfältet för att köra makrot.

Titta på följande bild.

Slutligen ska alla uppgifter från Dataset arket kopieras nu i Kopiera och klistra in i vår Excel-arbetsbok.

Läs mer: Excel VBA: Kopiera intervall till en annan arbetsbok

2. VBA-makro för att kopiera och klistra in data från ett aktivt arbetsblad till ett annat i Excel

I det föregående avsnittet krävde vi inte att arbetsbladet skulle aktiveras. Men i det här avsnittet lär vi oss hur vi kan kopiera och klistra in data i ett aktivt arbetsblad .

Steg:

  • På samma sätt som tidigare, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret, kopiera följande kod och pasta den.
 Sub CopyPasteToAnotherActiveSheet() 'Kopiera data från källbladet Sheets("Dataset").Range("B2:F9").Copy 'Aktivera destinationsbladet Sheets("Paste").Activate 'Välj destinationsområde Range("B2").Select 'Klistra in i destinationen ActiveSheet.Paste Application.CutCopyMode = False End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör koden som visas ovan och se resultatet i följande bild.

Den här gången kommer alla uppgifter från Dataset arket kopieras nu i Klistra in som vi aktiverade innan vi kopierade uppgifterna.

Läs mer: Excel-formel för att kopiera text från en cell till ett annat ark

3. Kopiera och klistra in en enskild cell från ett arbetsblad till ett annat i Excel med VBA-makro

I ovanstående avsnitt har du lärt dig hur du kopierar och klistrar in ett dataintervall från ett kalkylblad till ett annat. Nu ska du se hur du kan kopiera och klistra in när du har en enda uppgift i ditt Excel-kalkylblad.

Titta på följande bild, den Utbud ark består av endast ett värde.

Vi kommer att se hur vi kan kopiera och klistra in denna cell i ett annat ark i Excel med VBA .

Steg:

  • Som framgår ovan kan öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret, kopiera följande kod och pasta
 Sub CopyPasteSingleRangeToAnotherSheet() Arbetsblad("Range").Range("B4").Copy Arbetsblad("CopyRange").Range("B2") End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör denna kod och se följande bild.

Denna enda uppgift " Kopiera den här cellen " i Cell B4 i den Dataset arket kopieras nu i CopyRange ark i Cell B2 .

Läs mer: Excel VBA för att kopiera endast värden till destinationen (makro, UDF och användarformulär)

4. Klistra in kopierade data från ett arbetsblad till ett annat med PasteSpecial-metoden i Excel-makro

Du kan kopiera data från ett kalkylblad och klistra in dem på olika sätt med Excels Klistra inSpecial metod med VBA Stegen för att göra detta beskrivs nedan.

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyPasteSpecial() Arbetsblad("Dataset").Range("B2:F9").Copy Arbetsblad("PasteSpecial").Range("B2").PasteSpecial End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör den här delen av koden.

Titta på bilden ovan. Uppgifter från Dataset bladet överförs nu till Klistra inSpecial ark i Excel.

Läs mer: VBA-klistra in Special för att kopiera värden och format i Excel (9 exempel)

5. Makro för att kopiera och klistra in data under den sista cellen från ett arbetsblad till ett annat i Excel

Vi har redan några uppgifter i Dataset (som visades i inledningsavsnittet). Titta nu på den kommande delen av det här avsnittet. Vi har nu några nya data i ett annat blad som heter Sista cellen .

Vad vi vill göra här är att vi ska Specifika uppgifter om kopior (cellerna B5-F9). från Dataset ark och pasta de i under den sista cellen av denna Sista cellen ark.

Steg:

  • För det första, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • För det andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyPasteBelowTheLastCell() 'Ställ in variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Ställ in variabler för käll- och målark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Hitta den senast använda raden i källarbladet baserat på data i kolumn B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Hitta den första tomma raden i destinationsbladet baserat på data i kolumn B 'Offset-egenskapen är att flytta den kopierade datan 1 rad nedåt iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Kopiera data från källan och klistra in i destinationsbladet wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör den här koden. Titta på bilden nedan.

Här är det endast den utvalda uppgifter från Dataset ark är nu kopieras under den sista cellen i Sista cellen ark i Excel.

Läs mer: Formel för att kopiera och klistra in värden i Excel (5 exempel)

6. VBA-makro för att först rensa arbetsbladet och sedan kopiera och klistra in i ett annat arbetsblad

Vad händer om du har fel data i ditt befintliga ark och du vill extrahera den ursprungliga datan därifrån?

Titta på följande bild. Vi kommer att rensa uppgifterna från Klart område bladet och lagra data från Dataset ark med VBA kod.

Steg:

  • För det första, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • För det andra, kopiera följande kod och pasta den i kodfönstret.
 Sub ClearAndCopyPasteData() 'Ställ in variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Ställ in variabler för käll- och målark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Hitta den senast använda raden i källarbladet baserat på data i kolumn B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Hitta den första tomma raden i destinationsbladet baserat på data i kolumn B 'Offset-egenskapen är för att flytta de kopierade data 1 rad nedåt iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Rensa data från destinationsområdet wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Kopiera data från källan och klistra in i destinationsområdetwsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör denna kod. Titta på följande bild.

De tidigare uppgifterna i Klart område arket ersätts nu med uppgifter från Dataset ark.

Läs mer: Makro för att kopiera data från en arbetsbok till en annan baserat på kriterier

7. Makro för att kopiera och klistra in data från ett arbetsblad till ett annat med funktionen Range.Copy

Nu ska vi lära oss hur man VBA kod om hur man kan kopiera och klistra in data från ett arbetsblad till ett annat med den Range.Copy funktionen i Excel.

Steg:

  • För det första, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • För det andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyWithRangeCopyFunction() 'Ställ in variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Ställ in variabler för käll- och målark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Kopiera data från källan och klistra in dem i målet Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör denna kod och titta på följande bild.

Vi har lyckats duplicera data från Dataset bladet i Kopiera intervall bladet med den Range.Copy funktion.

Läs mer: Excel-formel för att kopiera cellvärde till en annan cell

Liknande läsningar

  • Excel VBA för att kopiera rader till ett annat arbetsblad baserat på kriterier
  • Använd VBA för att klistra in endast värden utan formatering i Excel
  • Kopiera och klistra in endast synliga celler i Excel (3 enkla sätt)
  • Kopiera och klistra in fungerar inte i Excel (9 orsaker & lösningar)
  • Hur man kopierar flera rader i Excel med hjälp av makro (4 exempel)

8. Implementera makrokod för att duplicera data från ett kalkylblad till ett annat med USEDRANGE-egenskapen

Den här gången kommer vi att lära oss VBA kod om hur man kan kopiera och klistra in data från ett arbetsblad till ett annat med den AnvändsRange attributet i Excel.

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyWithUsedRange() 'Ställ in variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Ställ in variabler för käll- och destinationsblad Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Kopiera data från källan och klistra in i destinationen Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör den här delen av koden.

Som vi kan se i bilden ovan har vi lyckats kopiera och klistra in data från Dataset bladet i AnvändsRange bladet med den USEDRANGE egendom.

Läs mer: Kopiera samma värde i flera celler i Excel (4 metoder)

9. VBA-makro för att kopiera och klistra in valda data från ett ark till ett annat i Excel

Du kan kopiera och klistra in endast vissa utvalda data från ett arbetsblad till ett annat med VBA Stegen för att göra det visas nedan.

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyPasteSelectedData() 'Ställ in variabler Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Ställ in variabler för käll- och målark Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Kopiera data från källan wsSource.Range("B4:F7").Copy 'Klistra in data i målark Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub 

Din kod är nu redo att köras.

Denna kod kommer att endast kopiera området från B4 till F7 från Dataset ark och klistra in dem i B2 Utbudet i den Klistra in markerade namngivet blad .

  • Nästa, Kör denna kod.

Slutligen har endast de utvalda uppgifterna från Dataset arket kopieras och klistras in i den Klistra in markerat ark i Excel-arbetsboken.

Läs mer: Hur man tillämpar VBA PasteSpecial och behåller källformateringen i Excel

10. Makrokod för att duplicera data från ett kalkylblad till ett annat vid den första tomma raden

Här kommer vi att se hur du kan kopiera uppgifter från Dataset ark och pasta de som är i första tomma cellen i ett annat arbetsblad i Excel med VBA .

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536").End(xlUp) End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör den här delen av koden.

Se bilden ovan. Blad13 var helt tom. Som ett resultat av detta klistrade den exekverade koden in de kopierade uppgifterna från den Dataset blad i den mycket första cellen i den Blad13 ark i Excel.

Läs mer: Kopiera och klistra in värden till nästa tomma rad med Excel VBA (3 exempel)

11. Inbädda VBA för att kopiera och klistra in automatiskt filtrerade data från ett Excel-ark till ett annat

Vi kan filtrera källdatasetet och kopiera och klistra in endast de filtrerade uppgifterna i ett annat kalkylblad i Excel. Följ den här artikeln för att lära dig hur du gör det steg för steg med hjälp av VBA .

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 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 kod är nu redo att köras.

  • Nästa, Kör den här koden. Endast den rad som har " Dean ", filtreras och kopieras till ett annat ark.

Observera i bilden ovan att endast de filtrerade uppgifterna " Dean " från B-kolonn kopieras nu och klistras in i Blad15 ark.

Läs mer: Kopiera och klistra in i Excel med VBA (7 metoder)

Liknande läsningar

  • Hur man autofiltrerar och kopierar synliga rader med Excel VBA
  • Kopiera unika värden till ett annat kalkylblad i Excel (5 metoder)
  • Kopiera sammanslagna och filtrerade celler i Excel (4 metoder)
  • Körtidsfel 1004: PasteSpecial-metoden för Range Class misslyckades
  • Klistra in länk och transponera i Excel (8 snabba sätt)

12. Klistra in en rad längst ner i ett intervall samtidigt som du behåller den kopierade formeln från det ovanstående intervallet

När du vill kopiera ett värde och behålla formeln i det medan du klistrar in den i en annan rad, och sedan med VBA kod kan du enkelt utföra uppgiften.

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 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 kod är nu redo att köras.

  • Nästa, Kör den här koden och titta på bilden nedan.

Den sista raden kopieras exakt som den är. i raden bredvid.

Läs mer: Hur man automatiskt kopierar data från en cell till en annan i Excel

13. VBA för att kopiera data från ett ark till ett annat ark i en annan öppen men inte sparad arbetsbok

Lägg märke till namnet på vår exempelarbetsbok, Arbetsbok för källan Vi kopierar uppgifterna från Dataset ark från den här arbetsboken och klistra in det i ett annat arbetsblad i en annan arbetsbok som heter Arbetsbok om destinationen som är öppen men inte sparad ännu .

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyOneFromAnotherNotSaved() Arbetsböcker("Source Workbook").Worksheets("Dataset").Range("B2:F9").Copy Arbetsböcker("Destination Workbook").Worksheets("Sheet1").Range("B2") End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör denna kod.

Uppgifter från Dataset bladet i Arbetsbok för källan kopieras nu i Blad 1 bladet i Arbetsbok om destinationen .

Läs mer: Excel VBA: Kopiera cellvärde och klistra in det i en annan cell

14. Makro för att reproducera data från ett ark till ett annat ark i en annan öppen och sparad arbetsbok

Den här gången kommer vi att kopiera uppgifterna från Dataset bladet från den Arbetsbok för källan och pasta den i den Blad2 i arbetsbladet i Arbetsbok om destinationen . Men nu är det arbetsboken är öppen och sparad .

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyOneFromAnotherSaved() Arbetsböcker("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Arbetsböcker("Destination Workbook.xlsx").Worksheets("Sheet2").Range("B2") End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör denna kod.

Uppgifter från Dataset bladet i Arbetsbok för källan kopieras nu i Blad2 bladet i Arbetsbok om destinationen . Och titta på namnet, detta arbetsboken har sparats denna gång.

Läs mer: Kopiera och klistra in i Excel utan att ändra formatet

15. Använd VBA för att kopiera och klistra in data från ett arbetsblad till ett annat arbetsblad i en annan stängd arbetsbok

I de två föregående avsnitten har vi lärt oss hur man kopierar och klistrar in data från ett kalkylblad till ett annat i en annan arbetsbok som är öppen. I det här avsnittet kommer vi att lära oss koden för att kopiera och klistra in data när arbetsboken är stängd .

Steg:

  • Öppna först Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • Andra, kopiera följande kod och pasta den i kodfönstret.
 Sub CopyOneFromAnotherClosed() 'För att öppna arbetsboken som sparats i ditt system 'ändra sökvägen nedan enligt filens placering i ditt system Workbooks.Open "D:\ExcelWIKI\Excel Folder\Destination Workbook.xlsx" 'Kopierar data från arbetsboken som heter Source Workbook och 'Klistrar in dem i målarbetsboken som heter Destination Workbook Workbooks("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Stäng målarbetsboken efter att ha sparat Workbooks("Destination Workbook").Close SaveChanges:=True End Sub 

Din kod är nu redo att köras.

  • Nästa, Kör denna kod.

Även om arbetsboken stängdes den här gången, men efter att koden utförts, kan data från arbetsboken Dataset bladet i Arbetsbok för källan kopieras nu i Blad3 bladet i Arbetsbok om destinationen .

Läs mer: Excel VBA för att kopiera data från en annan arbetsbok utan att öppna den

Saker att komma ihåg

  • Metoderna 1 till 14 kräver att dina arbetsböcker är öppna. När du utför de makrokoder som visas i dessa metoder ska du inte glömma att hålla både käll- och målarbetsboken öppna.
  • Medan din arbetsböcker sparas, skriv då filnamnet med filtypen i koden. När arbetsböcker inte sparas, skriv då endast filnamnet. utan filens typ. Till exempel, om din arbetsboken sparas , skriv sedan " Destination. xlsx ", men om den arbetsboken sparas inte , skriv sedan " Destination " i koden.

Slutsats

I den här artikeln fick du veta hur du kan kopiera och klistra in data från ett arbetsblad till ett annat i Excel med VBA Jag hoppas att den här artikeln har varit till stor nytta för dig. Du får gärna fråga om du har några frågor om ämnet.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.