VBA Copy Worksheet - Bagaimana Menggunakan Worksheet.Copy?

Lembar Kerja Salin VBA Excel

Terkadang kita mungkin perlu menyalin rentang sel tertentu dari satu lembar kerja ke lembar kerja lainnya atau di lembar kerja itu sendiri. Dalam beberapa kasus, kami mungkin perlu menyalin seluruh lembar kerja ke lembar kerja baru. Anda mungkin sudah terbiasa dengan menyalin berbagai sel, tetapi bagaimana menyalin seluruh lembar kerja itu sendiri menggunakan VBA. Pada artikel ini, kami akan memberi Anda penjelasan mendetail tentang cara menyalin lembar kerja ke buku kerja lain di VBA.

Lembar Kerja. Metode Salin di VBA

Pertama, lihat sintaks metode Salin Lembar Kerja.

Lembar Kerja (). Salinan (Sebelum, Sesudah)

Metode salin memiliki dua argumen di dalamnya Sebelum & Sesudah; keduanya opsional.

  1. Sebelum: Lembar kerja yang ditargetkan yang kita salin. Jika Anda menentukan ini, Anda tidak dapat menggunakan argumen After .
  2. Sesudah: Lembar kerja yang ditargetkan yang kita salin. Jika Anda menentukan ini, Anda tidak bisa menggunakan argumen sebelum .

Karena keduanya adalah argumen opsional jika Anda membiarkannya kosong maka lembar kerja yang ditargetkan akan disalin ke buku kerja baru, Microsoft Excel secara otomatis membuat buku kerja baru.

Kita akan melihat contoh yang sama sekarang di bagian contoh.

Contoh Salin Lembar Kerja di VBA

Contoh 1

Misalnya, lihat data di bawah ini di lembar kerja bernama "Januari".

Kami memiliki data di atas dalam lembar kerja bernama "Januari" .

  • Jadi, kita perlu menyalin lembar kerja di atas setelah lembar kerja bernama " Sheet1 ". Pertama, lihat lembar kerja dengan menggunakan objek lembar kerja.

Kode:

Sub Lembar Kerja_Copy_Example1 () Lembar Kerja ("Januari") Akhir Sub
  • Selanjutnya, masukkan metode " Salin ".

Kode:

Sub Lembar Kerja_Copy_Example1 () Lembar Kerja ("Januari") copy End Sub
  • Seperti yang Anda lihat di atas saat mulai mengetik kita tidak bisa melihat daftar IntelliSense untuk objek lembar kerja, ini adalah salah satu masalah signifikan bagi pemula jika mereka langsung menggunakan objek LEMBAR KERJA, tetapi ini dapat dihilangkan dengan menggunakan variabel, jadi tentukan variabel sebagai " Lembar Kerja ".

Kode:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet End Sub
  • Sekarang untuk variabel ini atur referensi lembar kerja " Januari ".

Kode:

Sub Lembar Kerja_Copy_Example1 () Dim Ws as Worksheet Set Ws = Worksheets ("January") End Sub
  • Jadi, sekarang dengan menggunakan variabel " Ws " kita dapat dengan mudah merujuk ke lembar kerja yang bernama " Januari ". Jadi masukkan nama variabel " Ws " dan pilih metode " Salin ".

Di sana kita pergi kita bisa melihat daftar IntelliSense menampilkan semua properti dan metode objek lembar kerja, berkat deklarasi variabel.

  • Pilih metode " Salin ", dan kita dapat melihat argumen dari metode " Salin ".
  • Karena kita perlu menyalin lembar kerja setelah lembar kerja " Sheet1 ", pertama akses argumen " Setelah " dengan memasukkan nama argumen seperti di bawah ini.

Setelah argumen disorot karena kita telah menggunakan nama argumen dengan simbol " sama dengan definisi " (: =)

  • Sekarang masukkan nama sheet dengan menggunakan objek " Sheets ".

Kode:

Sub Lembar Kerja_Copy_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("January") Ws.Copy After: = Sheets ("Sheet1") End Sub
  • Kami selesai. Ini akan menyalin lembar kerja " Januari " setelah lembar kerja " Lembar1 ".

Ini dia, kami telah menyalin lembar kerja Januari di sebelah kanan "Sheet1". Salah satu hal yang default disini adalah nama worksheet sama dengan sheet yang disalin dengan hitungan numerik worksheet dalam braket, dalam hal ini adalah “(2)”.

  • Untuk mengubah nama lembar kerja, tambahkan potongan kode di bawah ini ke kode di atas.
  • So the overall code is below.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets("Sheet1") ActiveSheet.Name = “New Copied Sheet” End Sub
  • Now run the code and see what happens.

Example #2

Similarly, if you want to copy the worksheet “Sheet1” before the worksheet “January” uses the below code.

Code:

Sub Worksheet_Copy_Example2() Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") Ws.Copy Before:=Sheets("January") ActiveSheet.Name = "New Sheet1" End Sub
  • So this will create a sheet-like the below.

Example #3

Similarly, if you want to copy the worksheet after the last worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example3() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Last Sheet" End Sub

Output:

The only change we made is we have used “Sheets. Count” method to count how many sheets are there in the workbook.

Example #4

Similarly, if you want to copy the worksheet before the first worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example4() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(1) ActiveSheet.Name = "First Sheet" End Sub

Output:

In this case, we have used “Sheets(1)” so this will place the worksheet copied before the first worksheet of the workbook.

Things to Remember

  • Suppose you don’t use either Before & After argument of the Worksheet. Copy worksheets will be copied to the new workbook altogether.
  • Nama lembar kerja yang disalin default akan sama diikuti dengan jumlah lembar kerja yang disalin.

Artikel yang menarik...