Lembar Hapus VBA

Lembar Hapus VBA Excel

Untuk Menghapus Lembar di VBA kami menggunakan metode Hapus Lembar Kerja. Untuk menerapkan metode ini terlebih dahulu kita perlu mengidentifikasi sheet mana yang kita hapus dengan memanggil nama sheet. Kami memiliki dua metode untuk melakukan hal yang sama pertama kami langsung menulis sheet1.delete dan metode kedua adalah sheets (sheet1) .delete.

Jadi sintaksnya mengikuti.

Lembar Kerja ("Nama Lembar Kerja"). Hapus

ATAU

Spreadsheet ("Nama Sheet"). Hapus

Jadi, pertama, kita perlu menentukan nama sheet dengan menggunakan Worksheet atau Sheets Object, kemudian kita bisa menggunakan metode "Hapus" .

Bagaimana cara menghapus lembar Excel menggunakan kode VBA?

Anda dapat mengunduh Templat Excel Lembar Hapus VBA ini di sini - Templat Excel Lembar Hapus VBA

Contoh # 1 - Hapus Lembar Kerja dengan menggunakan Namanya

Asumsikan Anda memiliki banyak lembar dan untuk menghapus lembar kerja tertentu kami perlu menyebutkan lembar kerja dengan namanya. Misalnya, saya memiliki 3 sheet berbeda bernama "Penjualan 2016", "Penjualan 2017", dan "Penjualan 2018".

Jika saya ingin menghapus sheet yang diberi nama “ Sales 2017 ” maka saya harus menyebutkan nama sheet seperti di bawah ini.

Kode:

Sub Delete_Example1 () Worksheets ("sheets 2017"). Akhiri Sub

Masalah dengan menyebutkan nama lembar kerja secara langsung, kami tidak bisa melihat daftar VBA IntelliSense. Bagaimanapun, sebutkan metode ini sebagai " Hapus ".

Kode:

Sub Delete_Example1 () Lembar Kerja ("lembar 2017"). Hapus End Sub

Jadi ini akan menghapus sheet bernama " Penjualan 2017 ".

Error Saat Menghapus Worksheet: Jika kita mencoba untuk menghapus worksheet yang tidak ada atau jika kita salah menyebutkan nama worksheet maka kita akan mendapatkan error vba sebagai “Subscript Out of Range”.

Di atas, saya mendapat kesalahan "Subscript Out of Range" karena di buku kerja saya tidak ada nama sheet yang disebut "Penjualan 2017".

Contoh # 2 - Hapus Lembar Kerja dengan Namanya dengan Variabel

Seperti yang telah kita lihat contoh di atas saat kita merujuk nama lembar kerja dengan menggunakan objek Lembar Kerja, kita tidak bisa melihat daftar IntelliSense. Untuk melihat daftar IntelliSense kita perlu menggunakan variabel.

Langkah 1: Pertama-tama deklarasikan variabel sebagai Lembar Kerja .

Kode:

 Sub Delete_Example2 () Dim Ws As Worksheet End Sub 

Langkah 2: Karena lembar kerja adalah variabel objek, kita perlu mengatur variabel ke lembar kerja tertentu dengan menggunakan kata " SET ".

Kode:

 Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") End Sub 

Sekarang variabel "Ws" mengacu pada lembar kerja yang dinamai "Penjualan 2017".

Langkah 3: Sekarang dengan menggunakan variabel " Ws " kita dapat mengakses semua daftar IntelliSense di lembar kerja.

Kode:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws. Akhiri Sub

Langkah 4: Dari daftar IntelliSense pilih metode " Hapus ".

Kode:

 Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws.Delete End Sub 

Seperti ini menggunakan variabel, kita dapat mengakses daftar IntelliSense.

Contoh # 3 - Hapus Lembar Kerja Aktif

Lembar Aktif tidak lain adalah lembar kerja mana saja yang aktif atau dipilih saat ini. Untuk metode ini, kami tidak perlu menyebutkan nama lembar kerja. Misalnya, lihat kode VBA di bawah ini.

ActiveSheet.Delete

Saat ini sheet aktif adalah "Penjualan 2017".

Jika saya menjalankan kode itu akan menghapus lembar aktif Ie "Penjualan 2017".

Sekarang saya akan memilih "Penjualan 2016".

Sekarang akan menghapus lembar aktif yaitu "Penjualan 2016".

Seperti ini, kita dapat menggunakan objek "Lembar Aktif" untuk menghapus lembar kerja.

Catatan: Untuk menggunakan metode ini kita harus benar-benar yakin apa yang kita lakukan dengan Lembar Aktif dan lembar mana yang akan menjadi lembar aktif.

Contoh # 4 - Hapus Lebih dari Satu Lembar Kerja

Dalam contoh kami di atas, kami telah melihat cara menghapus satu lembar tetapi bagaimana jika kami memiliki banyak lembar kerja, katakanlah kami ingin menghapus 10 lembar kerja.

Kami tidak dapat terus menulis 10 baris kode untuk menghapus lembar kerja, jadi kami perlu menggunakan loop untuk mengulang melalui koleksi lembar kerja dan menghapusnya.

Kode di bawah ini akan melewati lembar kerja dan menghapus semua lembar kerja di buku kerja.

Kode:

 Sub Delete_Example2 () Dim Ws As Worksheet Untuk Setiap Ws Di ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub 

Kode di atas akan menimbulkan kesalahan karena mencoba menghapus semua lembar di buku kerja. Jadi untuk menghindari ini, kita perlu menyimpan setidaknya satu lembar kerja.

Jika kita ingin menghapus semua lembar kerja kecuali lembar aktif maka kita perlu menggunakan kode di bawah ini.

Kode:

 Sub Delete_Example2 () Redupkan Ws Sebagai Lembar Kerja Untuk Setiap W di ActiveWorkbook.Worksheets Jika ActiveSheet.Name Ws.Name Lalu W. Hapus Akhir Jika Berikutnya Ws End Sub 

Similarly, if we don’t want to delete specific worksheet but to delete all other worksheets then we can use below code.

Code:

 Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name  "Sales 2018" Then 'You can change the worksheet name Ws.Delete End If Next Ws End Sub 

The above code will delete all the worksheets except the worksheet named as “Sales 2018”.