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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *