VBA - Menambah helaian ke buku kerja

VBA - Menambah helaian ke buku kerja

Pengenalan

Bergantung kepada hasil yang anda ingin capai, anda boleh menggunakan:
  • Salin kaedah => Untuk satu salinan helaian sedia ada
  • Tambah kaedah => Untuk menambah lembaran kosong baru ke buku kerja anda.

Anda juga mesti memastikan bahawa nama lembaran baru itu patuh. Maksudnya, nama lembaran tidak sepadan dengan yang sedia ada atau mengandungi apa-apa aksara yang dilarang. Dalam kedua-dua kes, kaedah pengesahan harus sama.

Salin kaedah

Salin lembaran. Data dan format helaian baru akan sama dengan helaian sumber.

Sintaks

ungkapan .Copy ( Sebelum, Selepas )

Ungkapan boleh menjadi objek Lembaran atau Lembaran Kerja.

Parameter Sebelum dan Selepas adalah pilihan. Anda hanya boleh menentukan satu daripada dua parameter ini. Mereka adalah jenis Variant dan sama ada boleh mewakili helaian mencari sebelum atau selepas yang anda mahu salin. Jika parameter diabaikan, kunci disalin secara automatik ke dalam buku kerja baru.

Apa yang berlaku kemudian?

Apabila membuat lembaran baru dengan kaedah Salin:
  • Lembaran dicipta di lokasi yang dikehendaki (sebelum atau selepas helaian lain dalam buku kerja)
  • Ia dinamakan semula berdasarkan nama lembaran sumber. Contoh: Sheet1 => Sheet1 (2)
  • Ia sama dengan helaian yang disalin.
  • Ia menjadi lembaran aktif. Jika helaian disalin ke buku kerja baru, ia menjadi buku kerja aktif.

Contoh penggunaan

Salin "Sheet1" selepas "Sheet3"

 Lembaran Kerja ("Lembaran1") Salinan Selepas: = Lembaran Kerja ("Lembaran3") 

Salin "Sheet4" sebelum "Sheet2":

 Helaian ("Sheet4") Salin Sebelum: = Helaian ("Sheet2") 

Salin helaian "rekap" dalam buku kerja baru

 Lembaran kerja ("rekap"). Salin 

Salin lembaran yang diindeks sebagai 1 pada kedudukan terakhir buku kerja, tanpa menghiraukan nama helaian terakhir:

 Helaian (1) .Copy Selepas: = Helaian (Sheets.Count) 

Salin lembaran yang diindeks sebagai 10 pada awal buku kerja, tanpa mengira nama helaian terakhir:

 Helaian (10) .Copy Sebelum: = Helaian (1) 

Anda ingin menyalin beberapa helaian buku kerja aktif anda ke dalam buku kerja baru:

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

Kaedah Tambah

Membuat hamparan baru (grafik atau makro). Lembaran kerja baru menjadi lembaran aktif.

Lembaran baru ini tidak mengandungi sebarang data atau pemformatan.

Sintaks

ungkapan .Add ( Sebelum, Selepas, Mengira, Jenis )

Ungkapan boleh menjadi objek Lembaran atau Lembaran Kerja.

The Sebelum, Selepas, Count dan jenis parameter adalah pilihan.

Sama ada dan Sebelum - Anda hanya boleh menentukan salah satu daripada parameter ini. Mereka adalah jenis Variant dan sama ada boleh mewakili helaian mencari sebelum atau selepas yang anda mahu salin.

Parameter Count juga merupakan Varians. Ia mewakili bilangan helaian yang anda ingin tambah.

Parameter Jenis mewakili jenis helaian yang anda ingin tambah.

  • xlWorkSheet - menambah lembaran kerja
  • xlChart - menambah lembaran carta
  • xlExcel4MacroSheet - menambah hela makro (Excel4)
  • xlExcel4IntlMacroSheet - menyiarkan lembaran makro
  • xlDialogSheet - menambah lembaran dialog.

NB: Jangan lupa untuk menamakan semula parameter anda atau sintaks akan mengembalikan ralat di bawah:

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

Contoh penggunaan

Letakkan helaian selepas helaian terakhir dalam buku kerja:

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

Menambah tiga helaian di "kedudukan pertama" buku kerja aktif:

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

Menambah lembaran carta dalam buku kerja bernama "Wbk18" (Terbuka!) Selepas helaian bernama "Sheet4"

 WorkBooks ("Wbk18"). Sheets.Add After: = Worksheets ("Sheet4"), Type: = xlChart 

Menguji helaian

Semak sama ada lembaran sudah wujud dalam buku kerja

 'Test', 'Feuil_Exist = (Workbooks (strWbk)'). Seting (strWsh) .Name = strWsh) Fungsi Akhir 

Semak sama ada nama fail mengandungi aksara yang dilarang

 'Test the la chaine contient un caractère à éviter Function Valid_Name (strName As String, strChr As String) As Boolean Dim i By Byte, Tb_Car () As String, strProhib As String strProhib = "/ \: *?" "|" 'Liste des caractères à éviter Tb_Car = Split (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) il convient d'exclure ce dernier caractère For i = LBound (Tb_Car) To UBound (Tb_Car) - 1' Test si la chaîne contient un caractère prohibé If InStr (str, Tb_Car (i))> 0 Maka 'Si oui: Return Falid Valid_Name = False' ET Retourne le caractère prohibé strChr = Tb_Car (i) Keluar Fungsi Akhir Jika Seterusnya saya OK: Kembali True Valid_Name = 

Memanggil fungsi pengesahan

Kod adalah sama untuk kedua-dua kaedah Salin atau Tambah.
 Sub Principale () Dim strNewName As String, strCara As String strNewName = "NewSheet" If Valid_Name (strNewName, strCara) = False Then MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Anda tidak boleh menggunakan kata laluan:" & strCara, vbCritical Exit Sub End Jika Jika Feuil_Exist (ThisWorkbook.Name, strNewName) = True Then MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Dengan kata lain, anda boleh menggunakan kata laluan untuk menggunakan kata laluan.", Subklamat Keluar Sub Akhir Jika ThisWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1") Salinan Selepas: = Sheets (Sheets.Count) ActiveSheet.Name = strNewName End Sub 

Beberapa petua berguna untuk Office 2013

Pejabat 2013 membawa dua kaedah pelengkap kepada yang dilihat sebelumnya:
  • Salin pelbagai sel ke lembaran dan berbilang helai
  • Kaedah Add2 untuk koleksi objek Carta.

Salin pelbagai sel menggunakan kaedah FillAcrossSheets

Kaedah ini hanya tersedia untuk Office 2013. Anda mahu menyalin julat sel daripada "Sheet1" ke "Sheet3", "Sheet5" dan "Sheet7".

 Lembaran = Array ("Lembaran3", "Lembaran5", "Lembaran7") Helaian (Helaian) .FillAcrossSheets Worksheets ("Sheet1") Julat ("A1: C5" 

Parameter kaedah ini adalah:

  • Julat: Diperlukan
  • Jenis: Pilihan
  • xlFillWithAll: Salin kandungan dan formatnya.
  • xlFillWithContents: Salin kandungan.
  • xlFillWithFormats: Salin format.

Kaedah Add2

Kaedah ini hanya tersedia untuk Office 2013. Kaedah ini terpakai kepada koleksi objek Carta dan mengembalikan ralat " Runtime " apabila digunakan dengan objek Lembaran dan WorkSheets. Tiada maklumat lanjut mengenai Microsoft.com kecuali sintaks:

ungkapan .Add ( Sebelum, Selepas, Mengira, NewLayout )

Ungkapan mewakili objek Lembaran kerja

Parameter adalah sama dengan kaedah Tambah, hanya menggantikan parameter Jenis dengan NewLayout. Jika NewLayout ditetapkan kepada Benar, grafik dimasukkan dengan menggunakan peraturan baru.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama