Note: The other languages of the website are Google-translated. Back to English
Logga in  \/ 
x
or
x
Registrera  \/ 
x

or

Hur kopierar jag flera ark flera gånger i Excel?

Ibland kan vi behöva göra en kopia eller flera kopior av angivna kalkylblad i en arbetsbok. Här är några snabba sätt att hjälpa dig att enkelt kopiera ett kalkylblad eller flera kalkylblad flera gånger i Excel.


Gör en kopia av flera kalkylblad en gång till en aktiv arbetsbok eller en annan arbetsbok med kommandot Flytta eller Kopiera

Med Flytta eller Kopiera kommandot i Excel kan du göra en kopia av ett kalkylblad, flera specifika kalkylblad eller alla kalkylblad till en aktiv arbetsbok eller en annan arbetsbok åt gången.

1. I den specifika arbetsboken där du kopierar kalkylblad väljer du flera kalkylblad i fältet Tabellblad.
Anmärkningar: Håller CTRL nyckel, du kan välja flera icke-angränsande arkflikar genom att klicka på dem en efter en i fältflikens ark; innehav SKIFT kan du välja flera intilliggande arkflikar genom att klicka på den första arkfliken och den sista i arkflikens fält.

2. Högerklicka på den valda arkfliken på fältet Ark och välj Flytta eller Kopiera från snabbmenyn. Se skärmdump:
doc kopiera flera ark 01

3. I Flytta eller Kopiera dialogrutan, ange följande inställningar:
(1) Ange destinationsarbetsboken du ska kopiera kalkylblad till från Att boka rullgardinsmeny. Du kan välja den aktiva arbetsboken, en annan öppen arbetsbok eller en ny arbetsbok som du behöver.
(2) Ange positionen för de kopierade arken på fältet Arkblad, du kan välja efter alla befintliga ark.
(3) Kontrollera Skapa en kopia alternativ, om du inte markerar det här alternativet flyttas de valda kalkylbladen till målarbetsboken.
(4) Klicka på OK knapp.

Nu gör det bara en kopia av de valda kalkylbladen till den angivna arbetsboken. För att göra flera kopior av dessa kalkylblad kan du upprepa åtgärden flera gånger.

Bara flera klick för att göra flera kopior av flera kalkylblad i aktiv arbetsbok

I allmänhet kan vi kopiera flera kalkylblad med Flytta eller Kopiera funktion i Excel. Den här funktionen kan dock bara göra en kopia åt gången. Här, med Kutools för Excel Kopiera kalkylblad verktyget kan du enkelt göra så många kopior av många kalkylblad som du behöver i den aktiva arbetsboken med bara flera klick. Fullversion gratis provperiod 30 dagar!
annonskopiera flera kalkylblad 01

Kutools för Excel - Innehåller mer än 300 praktiska verktyg för Excel. Fullversion gratis provperiod 30 dagar, inget kreditkort krävs! Hämta den nu

Gör flera kopior av ett angivet kalkylblad till en aktiv arbetsbok med VBA-kod

Om du vill göra tio kopior av ett angivet kalkylblad, Flytta eller Kopiera kommandot är ett tidskrävande sätt, och du måste upprepa åtgärden många gånger. Men med följande VBA-kod kan du snabbt kopiera kalkylbladet tio gånger på en gång.

1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic för applikationer fönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i modulfönstret.

VBA: Gör flera kopior av vissa kalkylblad till en aktiv arbetsbok

Sub Copier ()
Dim x As Integer
x = InputBox("Enter number of times to copy Sheet1")
For numtimes = 1 To x
ActiveWorkbook.Sheets("Sheet1").Copy _
After:=ActiveWorkbook.Sheets("Sheet1")
Next
End Sub

Anmärkningar: I ovanstående kod ersätter du "Sheet1"med namnet på arket som ska kopieras.

3. Tryck sedan på F5 för att köra koden visas en snabbruta som frågar dig antalet arkarkopior du vill ha.

4. Klicka sedan OKhar det angivna kalkylbladet kopierats 100 gånger i den aktiva arbetsboken.


Gör flera kopior av flera kalkylblad till en aktiv arbetsbok med Kutools för Excel

Även om det är enkelt att göra en kopia av flera kalkylblad i Excel, kan du behöva använda Flytta eller Kopiera kommandoobjektet om och om igen. Vill du göra saken med ett enda klick? Med Kopiera kalkylblad verktyget för tillägget från tredje part Kutools för Excel, kan du göra flera kopior av flera kalkylblad med ett enda klick i Excel.

Kutools för Excel - Innehåller mer än 300 praktiska verktyg för Excel. Fullversion gratis provperiod 30 dagar, inget kreditkort krävs! Hämta den nu

1. Klicka Kutools Plus > Kopiera kalkylblad. Se skärmdump:

Anmärkningar: Klicka på Kutools Plus > Arbetsblad > Kopiera kalkylblad kommer också att få den här funktionen.

2. Tillämpa inställningar i Kopiera flera kalkylblad dialog ruta:
(1) Kontrollera kalkylbladet du vill kopiera från Kopiera valda kalkylblad sektion.
(2) Ange Antalet kopior.
(3) Bestäm positionen för de kopierade arken, till exempel före eller efter alla kalkylblad, före eller efter nuvarande kalkylblad.
(4) Klicka på Ok knapp.

3. En snabbruta dyker upp för att påminna dig om att de kontrollerade kalkylbladen har kopierats till flera gånger efter behov, klicka på OK för att avsluta den. Se skärmdump:

Denna Kopiera flera kalkylblad egenskap av Kutools för Excel kommer att göra flera kopior av flera angivna kalkylblad i den aktiva arbetsboken med endast flera klick. Ha en gratis testversion!


Gör en kopia av flera kalkylblad från flera arbetsböcker till en ny

Om du har Kutools för Excel installerat kan du också använda det Kombinera arbetsblad funktion för att göra en kopia av flera kalkylblad från flera stängda arbetsböcker till en ny arbetsbok med flera klick endast i Excel.

Kutools för Excel - Innehåller mer än 300 praktiska verktyg för Excel. Fullversion gratis provperiod 30 dagar, inget kreditkort krävs! Hämta den nu

1. Klicka Kutools Plus > Kombinera för att aktivera funktionen Kombinera arbetsblad.

2. I guiden Kombinera arbetsblad - Steg 1 av 3, kontrollera Kombinera flera kalkylblad från arbetsböcker till ett kalkylblad alternativet och klicka på Nästa knapp. Se skärmdump:

3. I guiden Kombinera arbetsblad - Steg 2 av 3 gör du som följande skärmdump:
(1) Klicka Lägg till > Fil or mapp för att lägga till arbetsböcker du kopierar kalkylblad från.
(2) I Arbetsbokslista avsnitt, kontrollera arbetsboken vars kalkylblad du kommer att kopiera;
(3) I Kalkylbladslista avsnitt, kolla kalkylbladet du kommer att kopiera;
(4) Upprepa ovan (2) och (3) för att välja kalkylblad från andra arbetsböcker som du kommer att kopiera.
(5) Klicka på Nästa knapp.

4. I guiden Kombinera kalkylblad - Steg 3 av 3, konfigurera kopieringsinställningarna efter behov och klicka på Finish knapp.

5. Nu i den nya dialogrutan, ange en målmapp för att spara den nya arbetsboken, namnge den nya arbetsboken i Filnamn rutan och klicka på Save knapp. Se skärmdump:

Nu kommer ytterligare två dialogrutor ut och ber dig att öppna den nya arbetsboken och spara kombinationsscenariot, klicka på knapparna efter behov. Hittills har alla kopierade kalkylblad kopierats från flera arbetsböcker åt gången.

Med denna Kombinera (arbetsblad) verktyget kan du enkelt kopiera och kombinera kalkylblad och arbetsböcker enligt följande lista. Ha en gratis testversion!
(1) Kombinera snabbt flera kalkylblad / intervall från arbetsböcker till ett kalkylblad;
(2) Sammanfoga / kombinera snabbt alla kalkylblad med samma namn över arbetsböcker till ett kalkylblad;
(3) Sammanfoga / kombinera kalkylblad eller arbetsböcker snabbt i en arbetsbok;
(4) Sammanfatta / beräkna snabbt data från flera kalkylblad till ett kalkylblad.


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2019 och 365. Stöder alla språk. Enkel distribution i ditt företag eller organisation. Fullständiga funktioner 30-dagars gratis provperiod. 60-dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50% och minskar hundratals musklick åt dig varje dag!
officetab botten
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Tyler Dempsey · 3 years ago
    I am new to this I am just trying to make copies of the same sheet this is the code I am using.

    Sub Copier()
    Dim s As String
    Dim numtimes As Integer
    Dim numCopies As Integer
    numCopies = InputBox("How many copies do you need?")
    s = InputBox("Enter the name of the Worksheet you want to copy")
    For numtimes = 1 To numCopies
    ActiveWorkbook.Sheets(s).Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
    Next
    End Sub

    when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.
    • To post as a guest, your comment is unpublished.
      Jorge · 1 years ago
      Working Code

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub

      copy the entire line from ActiveWorkbook.Sheets...... that was the problem, and some spaces

      Have a great day
    • To post as a guest, your comment is unpublished.
      Schuyler · 3 years ago
      [quote name="Tyler Dempsey"]I am new to this I am just trying to make copies of the same sheet this is the code I am using.

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
      Next
      End Sub

      when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.[/quote]


      Here is the exact code you want to use:


      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub
      • To post as a guest, your comment is unpublished.
        Belva · 2 months ago
        Thank you, the last one saved my life :)
    • To post as a guest, your comment is unpublished.
      Schuyler · 3 years ago
      [quote name="Tyler Dempsey"]I am new to this I am just trying to make copies of the same sheet this is the code I am using.

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
      Next
      End Sub

      when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.[/quote]


      Double check your code and make sure you don't have a space at ActiveWorkbook. Sheets(s).Copy _ or at Sheets(Worksheets.Cou nt)
  • To post as a guest, your comment is unpublished.
    Simon · 4 years ago
    Fantastic VBA code - really helped
  • To post as a guest, your comment is unpublished.
    Barry · 4 years ago
    When I first tried it, I got the error message because I didn't change the name Sheet1. After I realized what caused the error, I researched a little further, as I did not want to be manually entering the sheet name into the macro. And when I need this feature, it is almost always for the current sheet.

    I added the line a = activesheet.name
    And revised the line after:=activeworkbook.sheets("sheet1") to activeworkbook.sheets(a).copy _

    That worked very well, but I did notice the numbering was reversed ... that didn't bother me as I was going to manually rename the new sheets anyway.

    When I saw Schuyler's post, I further revised the line activeworkbook.sheets(a).copy _ to after:=activeworkbook.sheets(worksheets.count)

    I am now satisfied with the result. My finished macro:

    Sub copies()
    Dim x As Integer
    x = InputBox("Enter number of times to copy Sheet1")
    For numtimes = 1 To x
    ActiveWorkbook.Sheets("Sheet1").Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Count)
    Next
    End Sub

    ---
    All the best, Barry
    • To post as a guest, your comment is unpublished.
      MJ · 2 years ago
      i got syntax error on "After:=ActiveWorkbook.Sheets(Worksheets.Count)


      but i dunno whats wrong... Can u help me please?
    • To post as a guest, your comment is unpublished.
      Kate · 3 years ago
      Thank you so much Barry. Your finished macro is the only thing that worked for me.
  • To post as a guest, your comment is unpublished.
    stalag 17 · 4 years ago
    where i will insert this above code in vba should i create common button then inside ?? regards.
    • To post as a guest, your comment is unpublished.
      Adi · 3 years ago
      Follow the below steps:
      1. Copy the above code
      2. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
      2. Click Insert > Module, and paste the following code in the Module Window.
      4.Then press F5 key to run the code
      5.A prompt box appears to ask you the number of sheet copies you want.
  • To post as a guest, your comment is unpublished.
    Susan · 5 years ago
    I get an error that 'numtimes' is not defined...?
  • To post as a guest, your comment is unpublished.
    Debbi · 5 years ago
    I got the same error as Theou and no one seems to have addressed it. My tabs are already named PO 51, PO 52, etc. and I replaced Sheet1 with PO 51 to copy that and got the subscript error out of range (9)

    I followed Schuyler's code to get the right order, but I still get the error and it's always due to these two lines:

    ActiveWorkbook.Sheets(s).Copy _
    Before:=ActiveWorkbook.Sheets(Worksheets.Count)
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      [quote name="Debbi"]I got the same error as Theou and no one seems to have addressed it. My tabs are already named PO 51, PO 52, etc. and I replaced Sheet1 with PO 51 to copy that and got the subscript error out of range (9)

      I followed Schuyler's code to get the right order, but I still get the error and it's always due to these two lines:

      ActiveWorkbook.Sheets(s).Copy _
      Before:=ActiveWorkbook.Sheets(Worksheets.Count)[/quote]

      Can you include your complete code to make it easier to debug? A "subscript error out of range" usually means that the code references something that doesn't exist. I find this in my own code when I've got a typo or something of that nature.
  • To post as a guest, your comment is unpublished.
    Roy · 5 years ago
    how to copy with same column widths
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      Same column widths as the original Worksheet or do you want all of the column widths to be the same?
  • To post as a guest, your comment is unpublished.
    sadaqat · 5 years ago
    yes it works thanks I have successfully make multiple copies of a single worksheet in same workbook by using vba code thnx a lot.
  • To post as a guest, your comment is unpublished.
    Gopal Krishan · 5 years ago
    Search for word "After" and change it to "Before". This will create copies in right order "Before" Sheet1. The only thing to rememeber is that numbering will always start from (2) as the original sheet will always be counted as 1st copy. Also you can replace "Sheet1" with name of the tab you are trying to copy.
  • To post as a guest, your comment is unpublished.
    juan · 6 years ago
    [quote name="MichaelTadashi"]Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?[/quote]

    Anyone was able to answer this question? I need to create 72 copies, but it would be needed to have them in order (1 throught 72, intead of 72 through 1)

    Thanks!
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      [quote name="juan"][quote name="MichaelTadashi"]Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?[/quote]

      Anyone was able to answer this question? I need to create 72 copies, but it would be needed to have them in order (1 throught 72, intead of 72 through 1)

      Thanks![/quote]

      If you want the sheet copies to be in sequential order instead of backwards, change the following line...

      [i]After:=ActiveWorkbook.Sheets[/i][u]("Sheet1")[/u]

      to this...

      [i]After:=ActiveWorkbook.Sheets[/i][u](Worksheets.Count)[/u]

      My completed code looked like the following which uses 2 InputBox prompts to allow for a dynamic copy count and worksheet name..


      [i]Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub[/i]
      • To post as a guest, your comment is unpublished.
        Karsten · 4 years ago
        How do i get the coppies continuous numbered. If the sheet i want to copy is named I002, and i want the next to be named I003,I004,I005 an so on.
  • To post as a guest, your comment is unpublished.
    Lim · 6 years ago
    Wow, thanks for the VBA code. It really helps a lot!
  • To post as a guest, your comment is unpublished.
    Dee · 6 years ago
    thanks, the vba code was huge
  • To post as a guest, your comment is unpublished.
    Theou Aegis · 6 years ago
    I tried the VBA code and got subscript out of range error (9). I replaced the sheet name with anything I could think of that was in the workbook already. Any idea what I did wrong?

    Also, is there a way to make it name each sheet incrementally? This would tie in with Michael's question, I'm sure. I'm guessing the answer to his question would be you'd need to set the After target to "sheet"+x somehow and that in turn would apply to my question if there was a way to specify what to name the new sheet. I could always just change my boss' "master" to "Aug 0" or whatever month it is, but it'd be easier for her to understand if the script did the naming automatically.
  • To post as a guest, your comment is unpublished.
    MichaelTadashi · 7 years ago
    Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?