Vba'da boş satırları silme (örneklerle)


Boş satırları kaldırmak için VBA’da aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: Belirli Bir Aralıktaki Boş Satırları Kaldırma

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Bu özel makro, Sheet1’in A1:B10 aralığındaki tüm boş satırları kaldıracaktır.

Yöntem 2: Tüm Sayfadaki Boş Satırları Sil

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

Bu özel makro, tüm boş satırları etkin sayfanın tamamından silecektir.

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: Belirli bir aralıktaki boş satırları kaldırın

Diyelim ki Excel’de çeşitli basketbol oyuncuları hakkında bilgiler içeren aşağıdaki veri kümesine sahibiz:

Bu sayfada A1:B10 aralığındaki tüm boş satırları kaldırmak için aşağıdaki makroyu oluşturabiliriz:

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

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

Belirttiğimiz aralıktaki tüm boş satırların kaldırıldığını unutmayın.

Örnek 2: Tüm Sayfadaki Boş Satırları Silme

Diyelim ki Excel’de çeşitli basketbol oyuncuları hakkında bilgiler içeren aşağıdaki veri kümesine sahibiz:

Tüm boş satırları sayfanın tamamından kaldırmak için aşağıdaki makroyu oluşturabiliriz:

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

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

Tüm boş satırların sayfanın tamamından kaldırıldığını unutmayın.

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ücre değerine göre satırlar nasıl silinir
VBA: Ad belirli bir metin içeriyorsa bir sayfa nasıl silinir
VBA: dosyalar nasıl silinir

Yorum ekle

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