Sao chép trang tính VBA

Đôi khi chúng ta có thể cần sao chép một dải ô cụ thể từ trang tính này sang trang tính khác hoặc trong cùng một trang tính. Trong một số trường hợp, chúng tôi có thể cần sao chép toàn bộ trang tính sang một trang tính mới. Bạn có thể đã quen với việc sao chép một dải ô, nhưng còn sao chép toàn bộ trang tính bằng VBA thì sao?

Sao chép trang tính VBA

Bạn được tự do sử dụng hình ảnh này trên trang web, mẫu của mình, v.v. , Vui lòng cung cấp cho chúng tôi liên kết ghi công Làm cách nào để cung cấp ghi công?Liên kết bài viết được siêu liên kết
For eg:
Nguồn. Bảng sao chép VBA (wallstreetmojo. com)

Mục lục
  • Bảng tính sao chép VBA Excel
    • bảng tính. Phương pháp sao chép trong VBA
    • Ví dụ về Copy Worksheet trong VBA
      • Ví dụ 1
      • Ví dụ #2
      • Ví dụ #3
      • Ví dụ #4
    • Những điều cần ghi nhớ
    • Bài viết được đề xuất

bảng tính. Phương pháp sao chép trong VBA

Đầu tiên, hãy xem cú pháp của Worksheet. phương pháp sao chép

Worksheet().Copy (Before, After)

Phương thức sao chép có hai đối số. Trước và sau. Cả hai đều là tùy chọn

  1. Trước. Bảng tính được nhắm mục tiêu chúng tôi đang sao chép. Nếu bạn chỉ định điều này, bạn không thể sử dụng đối số Sau
  2. Sau đó. Bảng tính được nhắm mục tiêu chúng tôi đang sao chép. Nếu bạn chỉ định điều này, bạn không thể sử dụng đối số Before

Vì cả hai đều là đối số tùy chọn, nếu bạn để trống, nó sẽ sao chép trang tính được nhắm mục tiêu vào một sổ làm việc mới. Microsoft Excel tự động tạo sổ làm việc mới

Bây giờ chúng ta sẽ thấy các ví dụ tương tự trong phần ví dụ

Ví dụ về Copy Worksheet trong VBA

Bạn có thể tải xuống Mẫu VBA Copy Worksheet Excel này tại đây – VBA Copy Worksheet Excel Template

Ví dụ 1

Xem dữ liệu bên dưới trong trang tính có tên Bảng tính được đặt tênĐể đặt tên cho trang tính, chỉ cần nhập . Ví dụ: nếu bạn muốn thay đổi trang tính có tên là "Bán hàng", bạn phải sử dụng đối tượng Worksheet để gọi trang tính theo tên của nó. đọc thêm “Tháng Giêng”.

Sao chép trang tính VBA

Ta có dữ liệu trên trong worksheet có tên “Jan. ”

  • Vì vậy, chúng ta cần sao chép trang tính trên vào sau trang tính có tên “Sheet1“. Tuy nhiên, trước tiên, hãy tham khảo trang tính bằng cách sử dụng đối tượng trang tính

Mã số

Sub Worksheet_Copy_Example1()

Worksheets("January")

End Sub
Sao chép trang tính VBA
  • Tiếp theo, nhập phương thức “Sao chép”.

Mã số

Sub Worksheet_Copy_Example1()

Worksheets("January").copy

End Sub
Sao chép trang tính VBA
  • Như bạn có thể thấy ở trên, khi chúng tôi bắt đầu nhập, chúng tôi không thấy danh sách IntelliSense cho đối tượng trang tính. Đây là một trong những vấn đề quan trọng đối với người mới bắt đầu nếu họ trực tiếp sử dụng đối tượng WORKSHEETS. Nhưng điều này có thể được loại bỏ bằng cách sử dụng các biến, vì vậy hãy xác định biến là “Bảng tính. ”

Mã số

Sub Worksheet_Copy_Example1()

Dim Ws as Worksheet

End Sub
Sao chép trang tính VBA
  • Đối với biến này, hãy đặt tham chiếu của trang tính “Jan. ”

Mã số

Sub Worksheet_Copy_Example1()

Dim Ws as Worksheet

Set Ws = Worksheets("January")

End Sub
Sao chép trang tính VBA
  • Vì vậy, bây giờ bằng cách sử dụng biến “Ws”, chúng ta có thể dễ dàng tham khảo trang tính có tên “Tháng Giêng. ” Vì vậy, hãy nhập tên biến “Ws” và chọn phương thức “Sao chép”.
Sao chép trang tính VBA

Chúng ta bắt đầu. Nhờ có khai báo biến Khai báo biếnViệc khai báo biến là cần thiết trong VBA để định nghĩa một biến cho một kiểu dữ liệu cụ thể nên . đọc thêm , chúng ta có thể thấy danh sách IntelliSense hiển thị tất cả các thuộc tính và phương thức của các đối tượng trang tính.

  • Chọn phương thức “Sao chép” và chúng ta có thể thấy các đối số của phương thức “Sao chép”
Sao chép trang tính VBA
  • Đầu tiên, truy cập đối số “Sau” bằng cách nhập tên đối số như bên dưới vì chúng ta cần sao chép trang tính sau trang tính “Sheet1. ”
Sao chép trang tính VBA

Sau khi làm nổi bật đối số vì chúng tôi đã sử dụng tên đối số với ký hiệu “bằng nhau theo định nghĩa” (. =)

  • Bây giờ, hãy nhập tên trang tính bằng cách sử dụng đối tượng “Trang tính”

Mã số

Sub Worksheet_Copy_Example1()

Dim Ws As Worksheet

Set Ws = Worksheets("January")

Ws.Copy After:= Sheets("Sheet1")

End Sub
Sao chép trang tính VBA
  • Bây giờ, chúng ta đã hoàn thành. Nó sẽ sao chép trang tính “Jan” sau trang tính “Sheet1. ”
Sao chép trang tính VBA

của bạn đi. Chúng tôi đã sao chép trang tính tháng 1 sang bên phải của “Trang tính 1”. Một trong những điều mặc định ở đây là tên của trang tính giống với trang tính đã sao chép với số lượng của trang tính trong ngoặc. Trong trường hợp này, đó là “(2). ”

  • Để thay đổi tên bảng tính, hãy thêm đoạn mã dưới đây vào mã trên
Sao chép trang tính VBA
  • Vì vậy, mã tổng thể là dưới đây

Mã số

Sub Worksheet_Copy_Example1()

Dim Ws As Worksheet

Set Ws = Worksheets("January")

Ws.Copy After:=Sheets("Sheet1")

ActiveSheet.Name = “New Copied Sheet”

End Sub
  • Bây giờ, hãy chạy mã và xem điều gì sẽ xảy ra
Sao chép trang tính VBA

Ví dụ #2

Tương tự, nếu bạn muốn sao chép trang tính “Sheet1” trước trang tính “Jan”, hãy sử dụng mã bên dưới

Mã số

Sub Worksheet_Copy_Example2()

Dim Ws As Worksheet

Set Ws = Worksheets("Sheet1")

Ws.Copy Before:=Sheets("January")

ActiveSheet.Name = "New Sheet1"

End Sub
Sao chép trang tính VBA
  • Vì vậy, điều này sẽ tạo ra một trang tính như bên dưới.
Sao chép trang tính VBA

Ví dụ #3

Tương tự, nếu bạn muốn sao chép trang tính sau trang cuối cùng, hãy sử dụng mã bên dưới

Mã số

Sub Worksheet_Copy_Example3()

Dim Ws As Worksheet

Set Ws = Worksheets("January")

Ws.Copy After:=Sheets(Sheets.Count)

ActiveSheet.Name = "Last Sheet"

End Sub
Sao chép trang tính VBA

Đầu ra.

Sao chép trang tính VBA

Thay đổi duy nhất chúng tôi đã thực hiện là sử dụng “Trang tính. Phương thức Count” để đếm xem có bao nhiêu trang tính trong sổ làm việc

Ví dụ #4

Tương tự, nếu bạn muốn sao chép trang tính trước trang tính đầu tiên, hãy sử dụng mã bên dưới

Mã số

Sub Worksheet_Copy_Example4()

Dim Ws As Worksheet

Set Ws = Worksheets("January")

Ws.Copy After:=Sheets(1)

ActiveSheet.Name = "First Sheet"

End Sub
Sao chép trang tính VBA

Đầu ra.

Sao chép trang tính VBA

Trong trường hợp này, chúng tôi đã sử dụng “Trang tính (1)” để đặt trang tính đã sao chép trước trang tính đầu tiên của sổ làm việc

Những điều cần ghi nhớ

  • Giả sử chúng ta không sử dụng đối số Trước và Sau của trang tính. Nó sẽ sao chép toàn bộ Copy worksheet vào workbook mới
  • Tên trang tính được sao chép mặc định sẽ giống nhau, theo sau là số lượng trang tính được sao chép đó

Bài viết được đề xuất

Bài này hướng dẫn VBA Copy Worksheet. Ở đây chúng tôi thảo luận về cách sao chép trang tính sang sổ làm việc khác bằng Worksheet. Phương pháp sao chép cùng với một ví dụ. Dưới đây bạn có thể tìm thấy một số bài viết VBA Excel hữu ích. –

Làm cách nào để sao chép các ô từ trang tính này sang trang tính khác trong Excel bằng VBA?

Sao chép một ô hoặc một dãy sang một trang tính khác . First, define the range or the cell that you want to copy. Tiếp theo, nhập dấu chấm (. ) và chọn phương thức sao chép từ danh sách thuộc tính và phương thức. Tại đây, bạn sẽ nhận được một intellisense để xác định đích đến của ô được sao chép.

Làm cách nào để sao chép trang tính sang VBA của sổ làm việc khác mà không cần mở?

Macro VBA Excel để sao chép trang tính sang sổ làm việc khác mà không cần mở .
Source_workbook. Trang tính (“Tập dữ liệu”). Sao chép trước. =ThisWorkbook. .
Source_workbook. Đóng LưuThay đổi. =Sai. Nó sẽ đóng sổ làm việc nguồn
Sao chép một phạm vi vào một trang tính trong một sổ làm việc đã đóng khác