VBA - Menambahkan lembar ke buku kerja

VBA - Menambahkan lembar ke buku kerja

pengantar

Bergantung pada hasil yang ingin Anda capai, Anda dapat menggunakan:
  • Metode salin => Untuk salinan lembar yang ada
  • Tambah metode => Untuk menambahkan lembar kosong baru ke buku kerja Anda.

Anda juga harus memastikan bahwa nama lembar yang baru sudah sesuai. Dengan kata lain, nama sheet tidak boleh identik dengan yang sudah ada atau mengandung karakter terlarang. Dalam kedua kasus, metode verifikasi harus sama.

Metode penyalinan

Salin selembar. Data dan format lembar baru akan identik dengan lembar sumber.

Sintaksis

ekspresi .Copy ( Sebelum, Setelah )

Ekspresi dapat berupa objek Sheet atau Worksheet.

Parameter Sebelum dan Setelah adalah opsional. Anda hanya dapat menentukan satu dari dua parameter ini. Mereka adalah tipe Varian dan dapat mewakili lembar temukan sebelum atau setelah yang ingin Anda salin. Jika parameter dihilangkan, lembar secara otomatis disalin ke buku kerja baru.

Lalu apa yang terjadi?

Saat membuat lembar baru dengan metode Salin:
  • Lembar dibuat di lokasi yang diinginkan (sebelum atau sesudah lembar lain di buku kerja)
  • Berganti nama berdasarkan nama lembar sumber. Contoh: Sheet1 => Sheet1 (2)
  • Ini identik dengan lembar yang disalin.
  • Itu menjadi lembar aktif. Jika lembar tersebut disalin ke buku kerja baru, itu menjadi buku kerja aktif.

Contoh penggunaan

Salin "Sheet1" setelah "Sheet3"

 Lembar kerja ("Sheet1"). Salin Setelah: = Lembar kerja ("Sheet3") 

Salin "Sheet4" sebelum "Sheet2":

 Lembar ("Sheet4"). Salin Sebelum: = Lembar ("Sheet2") 

Salin lembar "rekap" di buku kerja baru

 Lembar kerja ("rekap"). Salin 

Salin lembar yang diindeks sebagai 1 di posisi terakhir buku kerja, terlepas dari nama lembar terakhir:

 Lembar (1) .Salin Setelah: = Lembar (Lembar.Count) 

Salin lembar diindeks sebagai 10 di awal buku kerja, terlepas dari nama lembar terakhir:

 Lembar (10) .Salin Sebelum: = Lembar (1) 

Anda ingin menyalin beberapa lembar buku kerja aktif Anda ke buku kerja baru:

 Lembar (Array ("Sheet1", "Sheet3", "Sheet5")). Salin 

Metode Tambah

Membuat spreadsheet baru (grafik atau makro). Lembar kerja baru menjadi lembar aktif.

Lembar baru ini tidak mengandung data atau pemformatan apa pun.

Sintaksis

ekspresi .Tambahkan ( Sebelum, Setelah, Hitung, Ketik )

Ekspresi dapat berupa objek Sheet atau Worksheet.

Parameter Sebelum, Setelah, Hitung, dan ketik adalah opsional.

Either dan Before - Anda hanya dapat menentukan salah satu dari parameter ini. Mereka adalah tipe Varian dan dapat mewakili lembar temukan sebelum atau setelah yang ingin Anda salin.

Parameter Count juga merupakan Variant. Ini mewakili jumlah lembar yang ingin Anda tambahkan.

Parameter Type mewakili tipe sheet yang ingin Anda tambahkan.

  • xlWorkSheet - menambahkan lembar kerja
  • xlChart - menambahkan lembar grafik
  • xlExcel4MacroSheet - menambahkan lembar makro (Excel4)
  • xlExcel4IntlMacroSheet - mengiklankan lembar makro
  • xlDialogSheet - menambahkan lembar dialog.

NB: Jangan lupa untuk mengganti nama parameter Anda atau sintaks akan mengembalikan kesalahan di bawah ini:

 ActiveWorkbook.Sheets.Add Before: = Worksheets (Worksheets.Count),, 1, xlChart 

Contoh penggunaan

Letakkan selembar setelah lembar terakhir di buku kerja:

 Sheets.Add After: = Worksheets (Worksheets.Count) 

Menambahkan tiga lembar di "posisi pertama" dari buku kerja aktif:

 ActiveWorkbook.Sheets.Add Before: = Worksheets (1), Count: = 3 

Menambahkan lembar bagan dalam buku kerja bernama "Wbk18" (Buka!) Setelah lembar bernama "Sheet4"

 Buku Kerja ("Wbk18"). Sheets.Add After: = Worksheets ("Sheet4"), Ketik: = xlChart 

Menguji lembar itu

Periksa apakah lembar sudah ada di buku kerja

 'Test si la feuille déjà Function Feuil_Exist (strWbk As String, strWsh As String) Sebagai Boolean' Gestionnaire d'erreur Pada Kesalahan Lanjutkan Selanjutnya '"Uji" Feuil_Exist = (Buku Kerja (strWbk). Lembar (strWsh) .Nama = strWsh). Fungsi Akhir 

Periksa apakah nama file berisi karakter terlarang

 'Test si la chaine contient un caractère à éviter Function Valid_Name (strName As String, strChr As String) Sebagai Boolean Dim i As Byte, Tb_Car () As String, strProhib As String strProhib = "/ \: *" "|" 'Liste des caractères à éviter Tb_Car = Berpisah (StrConv (strProhib, vbUnicode), Chr $ (0))' Boucle sur tous les caractères à éviter 'Nota: le -1 est dû au Split de la chaine par le séparateur Chr (0) ) 'En effet, la chaine se terminant par un Chr (0) atau convient d'exclure ce dernier caractère For i = LBound (Tb_Car) Ke UBound (Tb_Car) - 1' Test si la chaîne contient un caractère larangan Jika InStr (strName, Tb_Car (i))> 0 Lalu 'Si oui: Kembalikan False Valid_Name = False' ET Retourne le caractère larangan strChr = Tb_Car (i) Keluar Fungsi Berakhir Jika Selanjutnya saya OK: Kembali Benar Valid_Name = True End Function 

Memanggil fungsi verifikasi

Kode ini sama untuk metode Salin atau Tambah.
 Sub Principale () Dim strNewName As String, strCara As String strNewName = "NewSheet" If Valid_Name (strNewName, strCara) = Salah Lalu MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Tidak ada yang berbeda dengan konten berikut:" & strCara, vbCritical Exit Sub End If If Feuil_Exist (ThisWorkbook.Name, strNewName) = True Then MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End If ThisWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1"). Copy After: = Sheets (Sheets.Count) ActiveSheet.Name = strNewName End Sub 

Beberapa tips bermanfaat untuk Office 2013

Office 2013 membawa dua metode pelengkap untuk yang terlihat sebelumnya:
  • Salin rentang sel ke selembar dan beberapa lembar
  • Metode Add2 untuk koleksi objek Charts.

Salin rentang sel menggunakan metode FillAcrossSheets

Metode ini hanya tersedia untuk Office 2013. Anda ingin menyalin rentang sel dari "Sheet1" ke "Sheet3", "Sheet5" dan "Sheet7".

 Sheets = Array ("Sheet3", "Sheet5", "Sheet7") Sheets (Sheets) .FillAcrossSheets Worksheets ("Sheet1"). Rentang ("A1: C5") 

Parameter dari metode ini adalah:

  • Rentang: Diperlukan
  • Jenis: Opsional
  • xlFillWithAll: Salin konten dan format.
  • xlFillWithContents: Salin konten.
  • xlFillWithFormats: Menyalin format.

Metode Add2

Metode ini hanya tersedia untuk Office 2013. Metode ini berlaku untuk koleksi objek Charts dan mengembalikan kesalahan " Runtime " saat digunakan dengan objek Sheets dan WorkSheets. Tidak ada info lebih lanjut tentang Microsoft.com kecuali sintaks:

ekspresi .Tambahkan ( Sebelum, Setelah, Hitung, NewLayout )

Ekspresi mewakili objek Lembar Kerja

Parameter identik dengan metode Add, cukup ganti parameter Type dengan NewLayout. Jika NewLayout diatur ke True, gambar dimasukkan menggunakan aturan baru.

Artikel Sebelumnya Artikel Berikutnya

Tips