VBA Hapus Lembar - Bagaimana cara menghapus lembar kerja menggunakan kode VBA?

Lembar Hapus VBA Excel

Untuk Menghapus Lembar di VBA kami menggunakan metode Hapus Lembar Kerja. Untuk menerapkan metode ini pertama-tama kita perlu mengidentifikasi sheet mana yang akan 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-tama, kita perlu menentukan nama sheet dengan menggunakan Worksheet atau Sheets Object, kemudian kita dapat menggunakan metode "Hapus" .

Bagaimana cara menghapus lembar Excel menggunakan kode 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 bernama “ Sales 2017, ” maka saya harus menyebutkan nama sheet seperti di bawah ini.

Kode:

Sub Delete_Example1 () Lembar Kerja ("lembar 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 () Worksheets ("sheets 2017"). Hapus End Sub

Jadi ini akan menghapus lembar bernama " Penjualan 2017 ".

Kesalahan Saat Menghapus Lembar Kerja: Jika kami mencoba untuk menghapus lembar kerja yang tidak ada atau jika kami salah menyebutkan nama lembar kerja, maka kami akan mendapatkan kesalahan VBA sebagai "Subscript Di Luar Jangkauan."

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 pada contoh di atas, saat kita merujuk ke 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, nyatakan 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 bernama "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, lembar aktif adalah "Penjualan 2017".

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

Sekarang saya akan memilih "Penjualan 2016".

Sekarang akan menghapus lembar aktif yaitu, "Penjualan 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

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 Worksheet Untuk Setiap Ws Dalam ActiveWorkbook.Worksheets Jika ActiveSheet.Name Ws.Name Lalu W. Hapus End Jika Berikutnya Ws End Sub

Demikian pula, jika kita tidak ingin menghapus lembar kerja tertentu tetapi untuk menghapus semua lembar kerja lainnya, maka kita dapat menggunakan kode di bawah ini.

Kode:

Sub Delete_Example2 () Redupkan Ws Sebagai Lembar Kerja Untuk Setiap W di ActiveWorkbook.Worksheets Jika Ws.Name "Penjualan 2018" Kemudian 'Anda dapat mengubah nama worksheet Ws.Delete End Jika Berikutnya Ws End Sub

Kode di atas akan menghapus semua lembar kerja kecuali lembar kerja bernama "Penjualan 2018".

Artikel yang menarik...