Vba: hücre değerine göre satırlar nasıl silinir


Hücre değerine dayalı satırları silmek için VBA’da aşağıdaki sözdizimini kullanabilirsiniz:

 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

Bu özel makro, B sütununun değerinin “Is” değerine eşit olduğu A1:C10 aralığındaki tüm satırları siler.

Bu makro aşağıdaki adımları kullanır:

  • Yalnızca B sütunundaki değeri “Is” olan satırları görüntülemek için A1:C10’a bir filtre uygulayın.
  • Daha sonra görünen tüm hücreleri silin.
  • Daha sonra filtreyi çıkarın.

Bu, B sütunundaki değerin “Is” olduğu A1:C10 aralığındaki tüm satırların silinmesine neden olur.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Hücre Değerine Göre Satırları Silmek için VBA’yı Kullanma

Çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki veri setine sahip olduğumuzu varsayalım:

Diyelim ki Konferans sütununun “Doğu”ya eşit olduğu veri kümesindeki her satırı kaldırmak istiyoruz.

Bunun için aşağıdaki makroyu oluşturabiliriz:

 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

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

Konferans sütunundaki değerin “Doğu” olduğu tüm satırların silindiğini unutmayın.

Not : Application.DisplayAlerts=False satırı, VBA’ya görünür satırları kaldırma işlemini görüntülememesini söyler, bu da süreci hızlandırır.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA: Hücrelere koşullu biçimlendirme nasıl uygulanır?
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: Belirli bir metin içeren hücreler nasıl sayılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir