Helaian Padam VBA - Bagaimana Menghapus Lembaran Kerja menggunakan Kod VBA?

Lembaran Padam Excel VBA

Untuk Menghapus Lembaran di VBA kami kaedah Hapus Lembaran Kerja. Untuk menggunakan kaedah ini terlebih dahulu kita perlu mengenal pasti helaian mana yang akan kita hapus dengan memanggil nama helaian. Kami mempunyai dua kaedah untuk melakukan perkara yang sama pertama kami secara langsung menulis sheet1.delete dan kaedah kedua adalah sheet (sheet1) .delete.

Jadi sintaksnya mengikuti.

Lembaran kerja ("Nama Lembaran Kerja"). Padam

ATAU

Helaian ("Nama Helaian"). Padam

Jadi, pertama, kita perlu menentukan nama lembaran dengan menggunakan Lembaran Kerja atau Objek Lembaran , kemudian kemudian, kita dapat menggunakan metode "Hapus" .

Bagaimana Menghapus Lembaran Excel menggunakan Kod VBA?

Contoh # 1 - Padam Lembaran Kerja dengan menggunakan Namanya

Andaikan anda mempunyai banyak helaian, dan untuk menghapus lembaran kerja tertentu, kita perlu menyebut lembaran kerja dengan namanya. Contohnya, saya mempunyai 3 helaian yang berlainan bernama "Sales 2016", "Sales 2017", dan "Sales 2018".

Sekiranya saya ingin menghapus helaian yang diberi nama " Sales 2017 " , maka saya harus menyebut nama helaian seperti di bawah.

Kod:

Sub Delete_Example1 () Lembaran Kerja ("helaian 2017"). Sub Akhir

Masalah dengan menyebut nama lembaran kerja secara langsung, kita tidak dapat melihat senarai VBA IntelliSense. Bagaimanapun, sebutkan kaedah itu sebagai " Hapus."

Kod:

Sub Hapus_Contoh1 () Lembaran Kerja ("helaian 2017"). Hapus Sub Akhir

Oleh itu, ini akan menghapuskan helaian yang diberi nama " Sales 2017 ".

Ralat Semasa Menghapus Lembaran Kerja: Sekiranya kita cuba menghapus lembaran kerja yang tidak ada atau jika kita menyebut nama lembaran kerja dengan salah, maka kita akan mendapat ralat VBA sebagai "Langganan Di Luar Jangkauan."

Di atas, saya mendapat ralat "Subscript Out of Range" kerana, di buku kerja saya, tidak ada nama lembaran yang disebut "Sales 2017".

Contoh # 2 - Padam Lembaran Kerja dengan Namanya dengan Pemboleh ubah

Seperti yang telah kita lihat dalam contoh di atas, saat kita merujuk pada nama lembar kerja dengan menggunakan objek Lembar Kerja, kita tidak dapat melihat daftar IntelliSense. Untuk melihat senarai IntelliSense, kita perlu menggunakan pemboleh ubah.

Langkah 1: Pertama, nyatakan pemboleh ubah sebagai Lembaran Kerja .

Kod:

Sub Delete_Contoh2 () Dim Ws Sebagai Lembaran Kerja Akhir Sub

Langkah 2: Oleh kerana lembaran kerja adalah pemboleh ubah objek, kita perlu menetapkan pemboleh ubah ke lembaran kerja tertentu dengan menggunakan kata " SET ".

Kod:

Sub Hapus_Contoh2 () Dim Ws Sebagai Set Lembaran Kerja Ws = Lembaran Kerja ("Jualan 2017") Sub Akhir

Kini pemboleh ubah "Ws" merujuk pada lembaran kerja bernama "Sales 2017".

Langkah 3: Sekarang, dengan menggunakan pemboleh ubah " Ws " , kita dapat mengakses semua daftar lembaran kerja IntelliSense.

Kod:

Sub Delete_Contoh2 () Dim Ws Sebagai Set Lembaran Kerja Ws = Lembaran Kerja ("Jualan 2017") Ws. Sub Akhir

Langkah 4: Dari senarai IntelliSense, pilih kaedah " Padam ".

Kod:

Sub Delete_Contoh2 () Dim Ws Sebagai Set Lembaran Kerja Ws = Lembaran Kerja ("Jualan 2017") Ws.Hapus Sub Akhir

Seperti ini menggunakan pemboleh ubah, kita dapat mengakses senarai IntelliSense.

Contoh # 3 - Padamkan Lembaran Kerja Aktif

Lembaran Aktif tidak lain adalah lembaran kerja yang aktif atau dipilih pada masa ini. Untuk kaedah ini, kita tidak perlu menyebut nama lembaran kerja. Sebagai contoh, lihat kod VBA di bawah.

Lembaran Aktif. Padam

Buat masa ini, helaian aktif adalah "Sales 2017".

Sekiranya saya menjalankan kod, ia akan menghapus lembaran aktif, iaitu, "Penjualan 2017".

Sekarang saya akan memilih "Penjualan 2016".

Sekarang ia akan menghapus lembaran aktif iaitu, "Sales 2016".

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

Kod di atas akan menimbulkan ralat kerana cuba menghapus semua helaian di buku kerja. Oleh itu, untuk mengelakkan ini, kita perlu menyimpan sekurang-kurangnya satu lembaran kerja.

Sekiranya kita ingin menghapus semua lembaran kerja kecuali lembaran aktif, maka kita perlu menggunakan kod di bawah.

Kod:

Sub Delete_Contoh2 () Dim Ws Sebagai Lembaran Kerja Untuk Setiap Ws di ActiveWorkbook. Lembaran Kerja Jika ActiveSheet.Name Ws.Name Kemudian Ws.Hapus End Jika Next Ws End Sub

Begitu juga, jika kita tidak mahu menghapus lembaran kerja tertentu tetapi menghapus semua lembaran kerja lain, maka kita dapat menggunakan kod di bawah ini.

Kod:

Sub Delete_Contoh2 () Dim Ws Sebagai Lembaran Kerja Untuk Setiap Ws di ActiveWorkbook.Wheets Works If Ws.Name "Sales 2018" Then 'Anda boleh menukar nama lembaran kerja Ws.Hapus Akhir Jika Selanjutnya Ws Akhir Sub

Kod di atas akan menghapus semua lembaran kerja kecuali lembaran kerja bernama "Sales 2018".

Artikel menarik...