Daftar Isi
Tutorial ini menyediakan kumpulan makro untuk menduplikasi lembar di Excel: salin dan ganti nama berdasarkan nilai sel, salin beberapa lembar, salin lembar kerja aktif ke file lain tanpa membukanya, dan banyak lagi.
Menyalin sheet secara manual di Excel cukup cepat dan mudah... jika dilakukan hanya sekali atau dua kali. Menduplikasi beberapa sheet berkali-kali membosankan dan memakan waktu. Di halaman ini, Anda akan menemukan beberapa makro yang berguna untuk mengotomatiskan tugas ini.
Excel VBA untuk menyalin lembar ke buku kerja baru
Makro satu baris yang paling sederhana ini melakukan persis seperti namanya - menyalin lembar aktif ke buku kerja baru.
Public Sub CopySheetToNewWorkbook() activeSheet.Copy End SubSalin beberapa lembar di Excel dengan VBA
Jika Anda ingin menyalin beberapa lembar dari buku kerja aktif ke yang baru, pilih semua lembar kerja yang diinginkan dan jalankan makro ini:
Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End SubExcel VBA untuk menyalin lembar ke buku kerja lain
Tergantung di mana Anda ingin menyisipkan lembar yang disalin, gunakan salah satu makro berikut ini.
Menyalin lembar ke awal buku kerja lain
Makro ini menyalin lembar aktif sebelum semua lembar kerja lain di file tujuan, Buku1 Untuk menyalin ke file lain, ganti "Book1.xlsx" dengan nama lengkap buku kerja target Anda.
Public Sub CopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End SubMenyalin lembar ke akhir buku kerja lain
Potongan kode ini menduplikasi lembar kerja aktif dan menempatkan salinannya ke akhir Buku1 Sekali lagi, harap ingat untuk mengganti "Book1.xlsx" dengan nama buku kerja tujuan Anda.
Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx" ).Worksheets.Count) End SubCatatan. Agar makro berfungsi, buku kerja target harus disimpan di hard drive atau jaringan Anda.
Salin lembar ke buku kerja yang dipilih
Untuk bisa menyalin sheet saat ini ke buku kerja yang terbuka, Anda bisa membuat UserForm (bernama UserForm1 ) dengan ListBox kontrol ( bernama ListBox1 ) dan dua tombol:
Selanjutnya, klik dua kali formulir dan tempelkan kode di bawah ini di jendela Code:
Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Each wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Next End Sub Private Sub CommandButton1_Click() If ListBox1.ListIndex> -1 Then SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide EndSubDengan UserForm di tempatnya, Anda dapat menggunakan salah satu makro berikut untuk menyalin lembar aktif ke buku kerja yang Anda pilih.
Salin lembar ke awal dari buku kerja yang dipilih :
Public Sub CopySheetToBeginningAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "" ) Then activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Unload UserForm1 End SubSalin lembar ke akhir dari buku kerja yang dipilih :
Public Sub CopySheetToEndAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "" ) Then activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserForm1.SelectedWorkbook). _ Worksheets.Count) End If Unload UserForm1 End SubSaat dijalankan di Excel, makro akan menampilkan daftar semua buku kerja yang sedang dibuka. Anda memilih yang dibutuhkan dan klik OK:
Makro Excel untuk menyalin lembar dan mengganti nama
Ketika Anda menyalin lembar di Excel, replika diberi nama dalam format default seperti Sheet1 (2) Makro berikut ini dapat menghindarkan Anda dari kesulitan mengubah nama default secara manual.
Kode ini menduplikasi lembar kerja yang aktif, menamai salinannya sebagai "Lembar Tes" (Anda bebas menggantinya dengan nama lain yang Anda suka), dan menempatkan lembar yang disalin di akhir buku kerja saat ini.
Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = "Test Sheet" End SubUntuk memungkinkan pengguna untuk menentukan nama untuk lembar yang disalin , gunakan kode ini:
Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( "Masukkan nama untuk lembar kerja yang disalin" ) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End SubSetelah berjalan, makro akan menampilkan kotak input berikut ini, di mana Anda mengetikkan nama yang diinginkan dan tekan OK:
Excel makro untuk menyalin lembar dan mengganti nama berdasarkan nilai sel
Dalam beberapa situasi, mungkin lebih nyaman untuk menamai salinan dengan nilai sel tertentu, misalnya, header kolom. Untuk ini, Anda cukup mengambil kode di atas dan menyediakan nilai dari sel yang saat ini dipilih Seperti contoh sebelumnya, salinan akan ditempatkan di akhir buku kerja yang aktif.
Bagian tersulit adalah membuat penggunanya selalu memilih cell yang benar sebelum menjalankan makro :)
Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next newName = InputBox( "Masukkan nama untuk lembar kerja yang disalin" , "Salin lembar kerja" , ActiveCell.Value) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End SubAtau, Anda bisa hardcode alamat sel yang dengannya salinan harus diberi nama, sel A1 dalam kode di bawah ini. Untuk memberi nama lembar kerja yang disalin berdasarkan sel lain, ganti A1 dengan referensi sel yang sesuai.
Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range( "A1" ).Value "" Then On Error Resume Next activeSheet.Name = wks.Range( "A1" ).Value End If wks.Activate End SubMakro untuk menyalin lembar kerja ke buku kerja tertutup
Makro ini menyalin lembar aktif ke akhir buku kerja yang ditutup. Nama buku kerja lain tidak ditentukan dalam kode - makro akan membuka jendela Windows Explorer standar dan memungkinkan Anda untuk memilih file tujuan apa pun:
Setelah Anda memilih file dan mengklik Terbuka , makro akan menyalin lembar aktif dan menutup buku kerja target secara otomatis.
Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Files (*.xlsx), *.xlsx" ) If fileName False Then Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closedBook = Workbooks.Open (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count)closedBook. Close ( True ) Application.ScreenUpdating = True End If End SubExcel VBA untuk menyalin lembar dari buku kerja lain tanpa membuka
Makro ini memungkinkan Anda untuk menyalin lembar kerja dari file Excel lain tanpa membukanya. Lembar yang disalin akan disisipkan di akhir buku kerja saat ini.
Ingatlah untuk membuat beberapa penggantian dalam kode:
- C:\Users\XXX\Documents\Target_Book.xlsx harus diubah ke jalur aktual dan nama buku kerja tempat Anda ingin menyalin lembar.
- Sheet1 harus diganti dengan nama sheet yang ingin Anda salin.
Excel VBA untuk menduplikasi lembar beberapa kali
Kadang-kadang, anda mungkin perlu menduplikasi sheet yang sama lebih dari sekali, misalnya untuk menguji formula yang berbeda pada set data yang sama. Hal ini dapat dengan mudah dilakukan dengan makro berikut.
Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Resume Next n = InputBox( "Berapa banyak salinan dari lembar aktif yang ingin Anda buat?" ) If n>= 1 Then For numtimes = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End If End SubBuka lembar asli, jalankan makro, tentukan berapa banyak salinan dari lembar aktif yang ingin Anda buat, dan klik OK :
Cara menduplikasi lembar di Excel dengan VBA
Untuk menyalin lembar di Excel dengan salah satu makro di atas, Anda dapat memasukkan kode VBA ke dalam buku Anda sendiri atau menjalankan makro dari buku kerja sampel kami.
Cara menambahkan makro ke buku kerja Anda
Untuk menyisipkan kode di buku kerja Anda, lakukan langkah-langkah ini:
- Buka lembar kerja yang ingin Anda salin.
- Tekan Alt + F11 untuk membuka Visual Basic Editor.
- Pada panel kiri, klik kanan Buku Kerja ini , lalu klik Sisipkan > Modul .
- Tempel kode di jendela Code.
- Tekan F5 untuk menjalankan makro.
Untuk petunjuk langkah demi langkah yang mendetail, silakan lihat Cara memasukkan kode VBA di Excel.
Cara menjalankan makro dari buku kerja sampel kami
Atau, Anda dapat mengunduh buku kerja sampel kami ke Gandakan Lembar Excel dan jalankan kode dari sana.
Buku kerja contoh berisi makro berikut ini:
SalinLembarKeBukuKerjaBaru - menyalin lembar kerja saat ini ke buku kerja baru.
SalinLembar yang Dipilih - menyalin beberapa lembar yang Anda pilih ke buku kerja baru.
SalinLembarKeBuku Kerja Lain - menyalin lembar aktif ke awal buku kerja lain.
SalinLembarKeAkhirBuku Kerja Lain - menyalin lembar aktif ke akhir file Excel lain.
SalinLembarDanRename - menduplikasi sheet saat ini, mengganti namanya seperti yang ditentukan oleh pengguna, dan meletakkan salinannya setelah semua sheet lain di buku kerja saat ini.
SalinLembarDanRenameDidefinisikan - menduplikasi lembar aktif, memberikan nama hardcoded ke salinan dan menempatkannya di akhir buku kerja saat ini.
SalinLembarDanRenameByCell - membuat salinan dari sheet aktif dan mengganti namanya berdasarkan nilai sel yang dipilih.
SalinLembarDanRenameByCell2 - menyalin lembar aktif dan mengganti namanya berdasarkan alamat sel yang dikodekan.
SalinLembarUntukMenutupBuku Kerja - memungkinkan Anda untuk menyalin lembar ke buku kerja tertutup.
SalinLembarDariBukuKerjaTertutup - memungkinkan Anda untuk menyalin lembar dari file Excel lain tanpa membukanya.
GandakanLembarLembarBanyakKali - memungkinkan Anda menduplikasi lembar di Excel beberapa kali.
Untuk menjalankan makro di Excel Anda, cukup lakukan hal berikut:
- Buka buku kerja yang diunduh dan aktifkan konten jika diminta.
- Buka buku kerja Anda sendiri dan arahkan ke sheet yang ingin Anda salin.
- Di lembar kerja Anda, tekan Alt + F8 , pilih makro yang diinginkan, dan klik Lari .
Itulah cara Anda dapat menduplikasi sheet di Excel dengan VBA. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!