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?