Isi kandungan
Tutorial menyediakan koleksi makro untuk menduplikasi helaian dalam Excel: salin dan namakan semula berdasarkan nilai sel, salin berbilang helaian, salin lembaran kerja aktif ke fail lain tanpa membukanya dan banyak lagi.
Menyalin helaian secara manual dalam Excel agak cepat dan mudah... jika dilakukan sekali atau dua kali sahaja. Penduaan berbilang helaian berbilang kali membosankan dan memakan masa. Pada halaman ini, anda akan menemui segelintir makro berguna untuk mengautomasikan tugasan ini.
Excel VBA untuk menyalin helaian ke buku kerja baharu
Makro satu baris yang paling mudah ini berfungsi tepat apa yang dicadangkan oleh namanya - menyalin helaian aktif ke buku kerja baharu.
Public Sub CopySheetToNewWorkbook() activeSheet.Copy End SubSalin berbilang helaian dalam Excel dengan VBA
Jika anda ingin salin beberapa helaian daripada buku kerja aktif kepada yang baharu, pilih semua helaian kerja yang diminati dan jalankan makro ini:
Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End SubExcel VBA untuk menyalin helaian ke buku kerja lain
Bergantung pada tempat anda ingin memasukkan helaian yang disalin, gunakan salah satu daripada makro berikut.
Salin helaian ke permulaan buku kerja lain
Makro ini menyalin helaian aktif sebelum semua lembaran kerja lain dalam fail destinasi, Book1 dalam contoh ini. Untuk menyalin ke fail lain, gantikan "Book1.xlsx" dengan nama penuh buku kerja sasaran anda.
Public SubCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Helaian(1) End SubSalin helaian ke penghujung buku kerja lain
Sekeping kod ini menduplikasi lembaran kerja aktif dan meletakkan salinan ke penghujung Buku1 . Sekali lagi, sila ingat untuk menggantikan "Book1.xlsx" dengan nama buku kerja destinasi anda.
Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Helaian(Workbooks( "Book1.xlsx " ).Lembaran Kerja. Kiraan) Tamat SubNota. Untuk makro berfungsi, buku kerja sasaran mesti disimpan pada pemacu keras atau rangkaian anda.
Salin helaian ke buku kerja yang dipilih
Untuk dapat menyalin helaian semasa ke mana-mana buku kerja terbuka, anda boleh mencipta UserForm (bernama UserForm1 ) dengan kawalan ListBox ( bernama ListBox1 ) dan dua butang:
Seterusnya, klik dua kali borang dan tampal kod di bawah dalam tetingkap Kod:
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() Jika ListBox1.ListIndex > -1 Kemudian SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) Tamat Jika Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide End SubDengan UserBorang di tempatnya, anda boleh menggunakan salah satu daripada yang berikut makro untuk menyalinhelaian aktif ke buku kerja pilihan anda.
Salin helaian ke permulaan buku kerja yang dipilih :
Helaian Salin Sub AwamToBeginningAnotherWorkbook() Muatkan UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook " " ) Kemudian activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Helaian(1) End If Unload UserForm1 End SubSalin helaian ke hujung buku kerja yang dipilih :
Public Sub CopySheetToEndAnotherWorkbook() Muatkan UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "" ) Kemudian activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Helaian( _ Workbooks(UserWork1.SelectedWorkbook). End SubApabila dijalankan dalam Excel, makro akan menunjukkan kepada anda senarai semua buku kerja yang sedang dibuka. Anda pilih yang diperlukan dan klik OK:
Makro Excel untuk menyalin helaian dan menamakan semula
Apabila anda menyalin helaian dalam Excel, replika diberikan nama dalam format lalai seperti Helaian1 (2) . Makro berikut boleh mengelakkan masalah menukar nama lalai secara manual.
Kod ini menduplikasi lembaran kerja aktif, menamakan salinan sebagai "Helaian Ujian" (anda bebas untuk menggantikannya dengan nama lain yang anda suka) , dan letakkan helaian yang disalin pada penghujung buku kerja semasa.
Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name =Subtitle Akhir "Helaian Ujian"Untuk membenarkan pengguna menentukan nama bagi helaian yang disalin , gunakan kod ini:
Setelah dijalankan, makro memaparkan kotak input berikut, di mana anda menaip nama yang diingini dan tekan OK:
Makro Excel untuk menyalin helaian dan menamakan semula berdasarkan nilai sel
Dalam sesetengah situasi, mungkin lebih mudah untuk menamakan salinan dengan nilai sel tertentu, sebagai contoh, pengepala lajur. Untuk ini, anda hanya mengambil kod di atas dan membekalkan nilai sel yang dipilih semasa ke kotak input secara automatik. Seperti contoh sebelumnya, salinan akan diletakkan di penghujung buku kerja aktif.
Bahagian yang paling sukar ialah meminta pengguna anda sentiasa memilih sel yang betul sebelum dijalankan makro :)
Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next newName = InputBox( "Masukkan nama untuk lembaran kerja yang disalin" , "Salin lembaran kerja" , ActiveCell.Value) Jika newName "" Kemudian activeSheet. Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End Jika End SubSebagai alternatif, anda boleh hardcode alamatsel yang mana salinan harus dinamakan, sel A1 dalam kod di bawah. Untuk menamakan lembaran kerja yang disalin berdasarkan sel lain, gantikan A1 dengan rujukan sel yang sesuai.
Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Julat ( "A1" ).Nilai "" Kemudian Pada Ralat Resume Next ActiveSheet.Name = wks.Julat( "A1" ).Nilai Tamat Jika wks.Aktifkan End SubMakro untuk menyalin lembaran kerja ke buku kerja tertutup
Makro ini menyalin helaian aktif ke penghujung buku kerja tertutup. Nama buku kerja lain tidak dinyatakan dalam kod - makro akan membuka tetingkap Windows Explorer standard dan membolehkan anda memilih mana-mana fail destinasi:
Selepas anda memilih fail dan klik Buka , makro akan menyalin helaian aktif dan menutup buku kerja sasaran secara automatik.
Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Fail (*.xlsx), *.xlsx" ) Jika Nama fail Salah Kemudian Application.ScreenUpdating = Palsu Set currentSheet = Application.activeSheet Set closedBook = Buku kerja. Buka (Nama fail) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closedBook. Tutup ( Benar ) Aplikasi.ScreenUpdating = True End Jika End SubExcel VBA untuk menyalin helaian dari buku kerja lain tanpapembukaan
Makro ini membolehkan anda menyalin lembaran kerja daripada fail Excel lain tanpa membukanya. Helaian yang disalin akan disisipkan pada penghujung buku kerja semasa.
Hanya ingat untuk membuat beberapa penggantian dalam kod:
- C:\Users\XXX\Documents\ Target_Book.xlsx hendaklah ditukar kepada laluan sebenar dan nama buku kerja yang anda ingin salin helaian.
- Helaian1 hendaklah digantikan dengan nama helaian yang ingin anda salin.
Excel VBA untuk menduplikasi helaian beberapa kali
Kadangkala, anda mungkin perlu menduplikasi helaian yang sama lebih daripada sekali, contohnya untuk menguji formula yang berbeza pada set data yang sama. Ini boleh dilakukan dengan mudah dengan makro berikut.
Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Resume Next n = InputBox( "Berapa banyak salinan helaian aktif yang anda mahu buat?" ) Jika n > = 1 Kemudian Untuk numtimes = 1 Kepada n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End If End SubBuka helaian asal, jalankan makro, nyatakan bilangan salinan helaian aktifyang anda ingin buat dan klik OK :
Cara untuk menduplikasi helaian dalam Excel dengan VBA
Untuk menyalin helaian dalam Excel dengan salah satu makro di atas, anda boleh sama ada memasukkan kod VBA ke dalam buku anda sendiri atau menjalankan makro daripada buku kerja sampel kami.
Cara menambah makro pada buku kerja anda
Untuk memasukkan kod dalam buku kerja anda, lakukan langkah berikut:
- Buka lembaran kerja yang ingin anda salin.
- Tekan Alt + F11 untuk membuka Editor Visual Basic.
- Hidupkan anak tetingkap kiri, klik kanan Buku Kerja Ini dan kemudian klik Sisipkan > Modul .
- Tampal kod dalam tetingkap Kod.
- Tekan F5 untuk menjalankan makro.
Untuk mendapatkan arahan langkah demi langkah yang terperinci, sila lihat Cara memasukkan kod VBA dalam Excel.
Cara menjalankan makro daripada buku kerja contoh kami
Sebagai alternatif, anda boleh memuat turun buku kerja sampel kami ke Helaian Pendua Excel dan jalankan kod dari sana.
Buku kerja sampel mengandungi makro berikut:
CopySheetToNewWorkbook - menyalin cu sewakan lembaran kerja ke buku kerja baharu.
CopySelectedSheets - menyalin berbilang helaian yang anda pilih ke buku kerja baharu.
CopySheetToBeginningAnotherWorkbook - menyalin helaian aktif ke permulaan buku kerja lain.
CopySheetToEndAnotherWorkbook - menyalin helaian aktif ke penghujung fail Excel lain.
CopySheetAndRename - menduplikasikan semasa lembaran,menamakan semula ia seperti yang ditentukan oleh pengguna dan meletakkan salinan selepas semua helaian lain dalam buku kerja semasa.
CopySheetAndRenamePredefined - menduplikasi helaian aktif, memberikan nama berkod keras pada salinan dan meletakkannya pada penghujung buku kerja semasa.
CopySheetAndRenameByCell - membuat salinan helaian aktif dan menamakan semula berdasarkan nilai sel yang dipilih.
CopySheetAndRenameByCell2 - menyalin helaian aktif dan menamakan semula ia berdasarkan alamat sel berkod keras.
CopySheetToClosedWorkbook - membenarkan anda menyalin helaian ke buku kerja tertutup.
CopySheetFromClosedWorkbook - membolehkan anda menyalin helaian daripada fail Excel lain tanpa membukanya.
DuplicateSheetMultipleTimes - membolehkan anda menduplikasi helaian dalam Excel beberapa kali.
Kepada jalankan makro dalam Excel anda, cuma lakukan perkara berikut:
- Buka buku kerja yang dimuat turun dan dayakan kandungan jika digesa.
- Buka buku kerja anda sendiri dan navigasi ke helaian yang anda mahu salinan. <1 7>Dalam lembaran kerja anda, tekan Alt + F8 , pilih makro yang diminati dan klik Jalankan .
Begitulah anda boleh menduplikasi helaian dalam Excel dengan VBA. Saya mengucapkan terima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!