Bagaimana cara menyalin dan memindahkan lembar menggunakan vba?
Anda dapat menyalin dan memindahkan sheet di Excel menggunakan kode VBA, dan dalam tutorial ini kita akan mempelajari berbagai cara untuk melakukannya.
Salin lembar di buku kerja yang sama
Jika Anda ingin menyalin lembar di buku kerja yang sama, Anda bisa menggunakan kode berikut di mana Anda telah menggunakan metode penyalinan.
Sheets("Sheet5").Copy Before:=Sheets(1)
Dalam kode ini, sheet1 adalah lembar pertama buku kerja, dan saat Anda menjalankan kode ini, kode ini akan menyalin lembar dengan nama “Sheet5” sebelum lembar pertama buku kerja.
Dan jika ingin menyalinnya setelah lembar pertama, kodenya adalah sebagai berikut.
Sheets("Sheet5").Copy After:=Sheets(1)
Dan jika ingin menyalinnya setelah lembar pertama, kodenya adalah sebagai berikut.
Sheets("Sheet5").Copy Before:=Sheets("Sheet3") Sheets("Sheet5").Copy After:=Sheets("Sheet3")
Saat Anda menjalankan kode VBA ini, kode tersebut akan menyalin “Sheet5” sebelum dan sesudah “Sheet3”.
Dengan baris kode berikut Anda bisa menyalin lembar setelah lembar terakhir buku kerja. Ia menggunakan sheet.count untuk mendapatkan jumlah lembar, lalu menggunakan hitungan untuk menyalin lembar terakhir.
Sheets("myNewSheet").Move After:=Sheets(Sheets.Count)
Tautan yang berguna: Jalankan makro – Perekam makro – Editor Visual Basic – Buku Pegangan Makro Pribadi
Salin lembar di buku kerja yang sama dengan nama baru
Dan jika Anda ingin menyalin sheet lalu langsung mengganti namanya, Anda perlu menggunakan properti name, seperti kode berikut.
Sheets("Sheet5").Move Before:=Sheets(1) ActiveSheet.Name = "myNewSheet"
Pindahkan lembar di buku kerja yang sama
Untuk memindahkan lembar di buku kerja yang sama, Anda perlu menggunakan metode pemindahan seperti yang Anda lakukan pada kode berikut.
Sheets("Sheet5").Move After:=Sheets(1)
Kode ini akan memindahkan “Sheet5” sebelum “Sheet2” seperti yang Anda lihat pada cuplikan di atas.
Salin lembar ke buku kerja baru
Saat Anda menggunakan metode salin tanpa menentukan lembar di buku kerja saat ini, VBA membuka buku kerja baru dan menyalin lembar itu ke buku kerja tersebut.
Sheets("Sheet5").Copy
Dan untuk memindahkan lembar ke buku kerja baru.
Sheets("Sheet5").Move
Salin beberapa lembar ke buku kerja baru
Jika Anda ingin menambahkan beberapa lembar ke buku kerja baru sekaligus, gunakan kode seperti ini.
Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy
Kode di atas membuat array lembar dan kemudian menyalin semuanya ke dalam buku kerja baru.
Salin lembar ke buku kerja lain
Jika Anda ingin menyalin lembar ke buku kerja lain yang sudah terbuka, Anda bisa menyebutkan nama buku kerja setelah atau sebelum argumen.
Sheets("Sheet1").Copy Before:=Workbooks("Book1.xlsx").Sheets(1)
Kode di atas menyalin Sheet1 dari buku kerja yang aktif dan menambahkannya sebelum lembar pertama Book1.xlsx yang sudah terbuka.
Dan jika Anda ingin memindahkannya.
Sheets("Sheet1").Move Before:=Workbooks("Book1.xlsx").Sheets(1)
Salin lembar ke buku kerja tertutup
Ada cara untuk menyalin lembar ke buku kerja tertutup dan Anda tidak perlu membukanya. Lihatlah kode di bawah ini.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") Workbooks("Book1.xlsx").Sheets("Sheet2").Copy Before:=mybook.Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub
Dalam kode ini, Anda memiliki variabel myBook dan kemudian buku kerja yang ditetapkan padanya. Kami telah menonaktifkan pembaruan layar sehingga kode dapat melakukan tugas di backend.
Salin lembar dari buku kerja lain tanpa membukanya
Dengan cara yang sama, Anda bisa menyalin dan memindahkan lembar dari buku kerja tertutup. Lihatlah kode di bawah ini.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") mybook.Sheets("mySheet").Copy Before:=Workbooks("Book1.xlsx").Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub