Vba: hapus lembar jika nama berisi teks tertentu
Anda bisa menggunakan sintaks berikut di VBA untuk menghapus setiap lembar di buku kerja Excel yang berisi teks tertentu:
SubDeleteSheets ()
Dim TextToFind As String
Dim TextWildcard As String
Dim Ws As Worksheet
Dim i As Integer
'prompt user for text to search for in sheet names
TextToFind = Application.InputBox(" Delete Sheets That Contain: ", _
ThisWorkbook.ActiveSheet.Name, , , , , 2)
TextWildcard = " * " & TextToFind & " * "
Application.DisplayAlerts = False
'loop through sheets and delete each sheet that contains text
i = 0
For Each Ws In ThisWorkbook.Sheets
If Ws.Name Like TextWildcard Then
Ws.Delete
i = i + 1
End If
Next Ws
Application.DisplayAlerts = True
End Sub
Saat Anda menjalankan makro khusus ini, kotak input akan muncul di mana Anda dapat memasukkan string teks tertentu.
Setelah Anda menekan Enter, setiap lembar di buku kerja Excel yang berisi teks tertentu akan dihapus secara otomatis.
Catatan : Baris Application.DisplayAlerts=False memberitahu VBA untuk tidak menampilkan proses penghapusan sheet, sehingga mempercepat eksekusinya.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Gunakan VBA untuk menghapus lembar yang berisi teks tertentu
Misalkan kita memiliki buku kerja Excel berikut yang berisi empat lembar:
Sekarang katakanlah kita ingin menghapus setiap sheet yang memiliki “Tim” di nama sheetnya.
Kita dapat membuat makro berikut untuk melakukan ini:
SubDeleteSheets ()
Dim TextToFind As String
Dim TextWildcard As String
Dim Ws As Worksheet
Dim i As Integer
'prompt user for text to search for in sheet names
TextToFind = Application.InputBox(" Delete Sheets That Contain: ", _
ThisWorkbook.ActiveSheet.Name, , , , , 2)
TextWildcard = " * " & TextToFind & " * "
Application.DisplayAlerts = False
'loop through sheets and delete each sheet that contains text
i = 0
For Each Ws In ThisWorkbook.Sheets
If Ws.Name Like TextWildcard Then
Ws.Delete
i = i + 1
End If
Next Ws
Application.DisplayAlerts = True
End Sub
Saat kita menjalankan makro ini, kotak input muncul di mana kita bisa memasukkan teks yang ingin kita cari di nama sheet:
Setelah kita mengetik “Tim” dan menekan OK , nama sheet yang berisi “Tim” di mana pun dalam namanya akan otomatis terhapus:
Perhatikan bahwa dua lembar dengan “Tim” di nama lembarnya telah dihapus.
Lembar apa pun yang tidak berisi “Tim” tidak disentuh.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
VBA: Cara menghitung jumlah lembar dalam buku kerja
VBA: Cara mengekstrak data dari buku kerja lain
VBA: cara menyisipkan banyak baris