Vba: cara menghapus baris berdasarkan nilai sel
Anda dapat menggunakan sintaks berikut di VBA untuk menghapus baris berdasarkan nilai sel:
Sub DeleteRowsByValue()
Dim ws As Worksheet
Set ws = ActiveSheet
'clear existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'filter range where column 2 in range is equal to "East"
ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
'delete rows that are visible
Application.DisplayAlerts = False
ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'remove filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
Makro khusus ini menghapus semua baris dalam rentang A1:C10 di mana nilai kolom B sama dengan “Is”.
Makro ini menggunakan langkah-langkah berikut:
- Terapkan filter ke A1:C10 untuk hanya menampilkan baris yang nilainya di kolom B adalah “Is”.
- Kemudian hapus semua sel yang terlihat.
- Kemudian hapus filternya.
Hal ini berdampak pada penghapusan semua baris pada rentang A1:C10 yang nilai pada kolom B sama dengan “Is”.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Gunakan VBA untuk Menghapus Baris Berdasarkan Nilai Sel
Misalkan kita mempunyai kumpulan data berikut yang berisi informasi tentang berbagai pemain bola basket:
Katakanlah kita ingin menghapus setiap baris dari kumpulan data yang kolom Konferensinya sama dengan “Timur”.
Kita dapat membuat makro berikut untuk melakukan ini:
Sub DeleteRowsByValue()
Dim ws As Worksheet
Set ws = ActiveSheet
'clear existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'filter range where column 2 in range is equal to "East"
ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
'delete rows that are visible
Application.DisplayAlerts = False
ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'remove filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Perhatikan bahwa semua baris yang nilai kolom Konferensinya adalah “Timur” telah dihapus.
Catatan : Baris Application.DisplayAlerts=False memberitahu VBA untuk tidak menampilkan proses menghilangkan garis yang terlihat, sehingga mempercepat proses.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
VBA: Cara menerapkan pemformatan bersyarat ke sel
VBA: Cara menghitung jumlah baris dalam jangkauan
VBA: Cara menghitung sel dengan teks tertentu