Lưu ý: Các ngôn ngữ khác của trang web đều do Google dịch. Quay lại tiếng Anh
Đăng nhập  \/ 
x
or
x
Đăng ký  \/ 
x

or

Làm thế nào để sao chép nhiều trang tính nhiều lần trong Excel?

Đôi khi, chúng tôi có thể cần tạo một bản sao hoặc nhiều bản sao của các trang tính được chỉ định trong một sổ làm việc. Dưới đây là một số cách nhanh chóng giúp bạn dễ dàng sao chép một trang tính hoặc nhiều trang tính nhiều lần trong Excel.


Tạo một bản sao của nhiều trang tính cùng một lúc vào sổ làm việc đang hoạt động hoặc một sổ làm việc khác bằng lệnh Di chuyển hoặc Sao chép

Với Di chuyển hoặc sao chép trong Excel, bạn có thể tạo một bản sao của một trang tính, nhiều trang tính cụ thể hoặc tất cả các trang tính vào sổ làm việc đang hoạt động hoặc một sổ làm việc khác tại một thời điểm.

1. Trong sổ làm việc nhất định nơi bạn sẽ sao chép trang tính, hãy chọn nhiều trang tính trên thanh Tab Trang tính.
chú thích: Giữ CTRL chính, bạn có thể chọn nhiều tab trang tính không liền kề bằng cách nhấp vào chúng lần lượt trên thanh Tab Trang tính; giữ SHIFT , bạn có thể chọn nhiều tab trang tính liền kề bằng cách nhấp vào tab trang tính đầu tiên và tab cuối cùng trên thanh Tab trang tính.

2. Nhấp chuột phải vào tab trang tính đã chọn trên thanh Tab Trang tính và chọn Di chuyển hoặc sao chép từ menu ngữ cảnh. Xem ảnh chụp màn hình:
doc sao chép nhiều tờ 01

3. Trong Di chuyển hoặc sao chép hộp thoại, vui lòng chỉ định các cài đặt sau:
(1) Vui lòng chỉ định sổ làm việc đích mà bạn sẽ sao chép các trang tính vào từ Đặt danh sách thả xuống. Bạn có thể chọn sổ làm việc đang hoạt động, một sổ làm việc đang mở khác hoặc một sổ làm việc mới nếu bạn cần.
(2) Chỉ định vị trí của các trang đã sao chép trên thanh Tab Trang tính, bạn có thể chọn sau tất cả các trang hiện có.
(3) Kiểm tra Tạo một bản sao tùy chọn, nếu bạn không chọn tùy chọn này, các trang tính đã chọn sẽ được chuyển vào sổ làm việc đích.
(4) Nhấp vào OK .

Bây giờ nó sẽ chỉ tạo một bản sao các trang tính đã chọn vào sổ làm việc được chỉ định. Để tạo nhiều bản sao của các trang tính này, bạn có thể lặp lại thao tác nhiều lần.

Chỉ vài cú nhấp chuột để tạo nhiều bản sao của nhiều trang tính trong sổ làm việc đang hoạt động

Nói chung, chúng tôi có thể sao chép nhiều trang tính với Di chuyển hoặc sao chép tính năng trong Excel. Tuy nhiên, tính năng này chỉ có thể tạo một bản sao tại một thời điểm. Đây, với Kutools cho Excel's Sao chép trang tính tiện ích, bạn có thể dễ dàng tạo nhiều bản sao của nhiều trang tính như bạn cần trong sổ làm việc đang hoạt động chỉ bằng vài cú nhấp chuột. Bản dùng thử miễn phí đầy đủ tính năng trong 30 ngày!
ad copy nhiều worksheet 01

Kutools cho Excel - Bao gồm hơn 300 công cụ tiện dụng cho Excel. Bản dùng thử miễn phí đầy đủ tính năng trong 30 ngày, không cần thẻ tín dụng! Get It Now

Tạo nhiều bản sao của một trang tính được chỉ định vào sổ làm việc đang hoạt động với mã VBA

Nếu bạn muốn tạo 10 bản sao của một trang tính cụ thể, Di chuyển hoặc sao chép lệnh sẽ là một cách tốn nhiều thời gian và bạn phải lặp lại thao tác nhiều lần. Nhưng với mã VBA sau, bạn có thể nhanh chóng sao chép trang tính 10 lần cùng một lúc.

1. Giữ ALT + F11 chìa khóa và nó mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.

VBA: Tạo nhiều bản sao của một trang tính nhất định vào sổ làm việc đang hoạt động

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

chú thích: Trong đoạn mã trên, hãy thay thế "Sheet1"với tên của trang tính sẽ được sao chép.

3. Sau đó nhấn F5 để chạy mã, một hộp nhắc xuất hiện để hỏi bạn số lượng bản sao trang tính mà bạn muốn.

4. Sau đó nhấn vào OK, trang tính được chỉ định đã được sao chép 100 lần trong sổ làm việc đang hoạt động.


Tạo nhiều bản sao của nhiều trang tính vào sổ làm việc đang hoạt động với Kutools cho Excel

Mặc dù việc tạo bản sao nhiều trang tính trong Excel rất đơn giản, nhưng nếu bạn muốn tạo nhiều bản sao của nhiều trang tính trong sổ làm việc hiện tại, bạn có thể phải sử dụng Di chuyển hoặc sao chép mục lệnh lặp đi lặp lại. Bạn có muốn hoàn thành công việc chỉ trong một cú nhấp chuột? Với Sao chép trang tính tiện ích của phần bổ trợ bên thứ ba Kutools cho Excel, bạn có thể tạo nhiều bản sao của nhiều trang tính bằng một cú nhấp chuột trong Excel.

Kutools cho Excel - Bao gồm hơn 300 công cụ tiện dụng cho Excel. Bản dùng thử miễn phí đầy đủ tính năng trong 30 ngày, không cần thẻ tín dụng! Get It Now

1. Nhấp chuột Kutools Plus > Sao chép trang tính. Xem ảnh chụp màn hình:

chú thích: Nhấp chuột Kutools Plus > Bảng > Sao chép trang tính cũng sẽ nhận được tính năng này.

2. Áp dụng cài đặt trong Sao chép nhiều trang tính hộp thoại:
(1) Kiểm tra các trang tính bạn muốn sao chép từ đó Sao chép các trang tính đã chọn phần.
(2) Chỉ định Số lượng bản sao.
(3) Xác định vị trí của các trang tính đã sao chép, ví dụ, trước hoặc sau tất cả các trang tính, trước hoặc sau trang tính hiện tại.
(4) Nhấp vào Ok .

3. Một hộp nhắc nhở bật ra để nhắc bạn rằng các trang tính đã chọn đã được sao chép thành nhiều lần khi bạn cần, vui lòng nhấp vào OK để thoát khỏi nó. Xem ảnh chụp màn hình:

T Sao chép nhiều trang tính tính năng của Kutools cho Excel sẽ tạo nhiều bản sao của nhiều trang tính được chỉ định trong sổ làm việc đang hoạt động chỉ với vài cú nhấp chuột. Có một bản dùng thử miễn phí!


Tạo một bản sao của nhiều trang tính từ nhiều sổ làm việc thành một bản sao mới

Nếu bạn đã cài đặt Kutools cho Excel, bạn cũng có thể áp dụng Kết hợp các bảng tính tính năng tạo một bản sao của nhiều trang tính từ nhiều sổ làm việc đã đóng thành một sổ làm việc mới chỉ với vài cú nhấp chuột trong Excel.

Kutools cho Excel - Bao gồm hơn 300 công cụ tiện dụng cho Excel. Bản dùng thử miễn phí đầy đủ tính năng trong 30 ngày, không cần thẻ tín dụng! Get It Now

1. Nhấp chuột Kutools Plus > Kết hợp để kích hoạt tính năng Kết hợp Trang tính.

2. Trong phần Kết hợp các Trang tính - Trình hướng dẫn Bước 1/3, vui lòng kiểm tra Kết hợp nhiều trang tính từ sổ làm việc thành một trang tính và nhấp vào Sau cái nút. Xem ảnh chụp màn hình:

3. Trong trình hướng dẫn Kết hợp các Bảng tính - Bước 2/3, vui lòng thực hiện như ảnh chụp màn hình sau:
(1) Nhấp vào Thêm > Tập tin or Thư mục để thêm sổ làm việc, bạn sẽ sao chép trang tính từ đó.
(2) Trong Danh sách sổ làm việc kiểm tra sổ làm việc có trang tính bạn sẽ sao chép;
(3) Trong Danh sách bảng tính kiểm tra các trang tính bạn sẽ sao chép;
(4) Lặp lại ở trên (2) (3) để chọn trang tính từ các sổ làm việc khác mà bạn sẽ sao chép.
(5) Nhấp vào Sau .

4. Trong trình hướng dẫn Kết hợp Bảng tính - Bước 3/3, vui lòng định cấu hình cài đặt sao chép khi bạn cần và nhấp vào Kết thúc .

5. Bây giờ trong hộp thoại mới, vui lòng chỉ định một thư mục đích để lưu sổ làm việc mới, đặt tên cho sổ làm việc mới trong Tên tập tin và nhấp vào Lưu cái nút. Xem ảnh chụp màn hình:

Bây giờ hai hộp thoại khác sẽ xuất hiện và yêu cầu bạn mở sổ làm việc mới và lưu kịch bản kết hợp, vui lòng nhấp vào các nút khi bạn cần. Cho đến nay, nó đã sao chép tất cả các trang tính được chỉ định từ nhiều sổ làm việc cùng một lúc.

Với điều này Kết hợp (Trang tính) tiện ích, bạn có thể dễ dàng sao chép và kết hợp các trang tính và sổ làm việc như danh sách sau. Có một bản dùng thử miễn phí!
(1) Nhanh chóng kết hợp nhiều trang tính / phạm vi từ sổ làm việc thành một trang tính;
(2) Nhanh chóng hợp nhất / kết hợp tất cả các trang tính có cùng tên trên các sổ làm việc thành một trang tính;
(3) Nhanh chóng hợp nhất / kết hợp các trang tính hoặc sổ làm việc thành một sổ làm việc;
(4) Nhanh chóng tóm tắt / tính toán dữ liệu từ nhiều trang tính vào một trang tính.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Super Formula Bar (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọc...
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãy...
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xét...
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDF...
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2019 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ các tính năng dùng thử miễn phí 30 ngày. Đảm bảo hoàn tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
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 · 1 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?