Bu öğretici, hücre değerlerine dayalı olarak satırların nasıl silineceğini veya ekleneceğini gösterecektir.
Hücre Değerine Göre Satırı Sil
Bu, bir aralıkta dolanır ve A sütununda "sil" yazıyorsa satırları siler.
1234567891011121314151617181920 | Alt DeleteRowsBasedonCellValue()'Değişkenleri BildirinLastRow Kadar Uzun, FirstRow Kadar UzunSatır Kadar UzunActiveSheet ile'İlk ve Son Satırları Tanımlayınİlk Sıra = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Satırlar Arası Döngü (Aşağıdan Yukarıya)Satır için = LastRow'dan FirstRow'a Adım -1If .Range("A" & Row).Value = "delete" Sonra.Range("A" & Row).EntireRow.DeleteBitirSonraki Satırİle bitmekAlt Bitiş |
Döngüyü alt satırdan başlatmalıyız çünkü bir satırı silmek verileri kaydırır, yukarıdan aşağıya döngü yaparsanız satırları atlar.
Ayrıca, son satıra manuel olarak girmek yerine, son kullanılan satırı hesapladığımıza dikkat edin.
Satırı Sil - Filtreye Göre
Önceki örnekte, kriterlere uyan her satırı silerek satırlar arasında dolaştık. Alternatif olarak, bazı kriterlere göre satırları filtrelemek ve ardından görünen satırları silmek için Excel'in Otomatik Filtresini kullanabiliriz:
12345678910111213141516171819202122232425 | Alt FilterAndDeleteRows()'ws değişkeni bildirDim ws As Çalışma Sayfasıws = ActiveSheet'i ayarla'Mevcut Filtreleri SıfırlaHatada Devam Et Sonrakiws.ShowAllDataHatada GoTo 0'Filtre Uygulaws.Range("a1:d100").AutoFilter Field:=1, Criteria1:="delete"'Satırları SilApplication.DisplayAlerts = Yanlışws.Range("a1:d100").SpecialCells(xlCellTypeVisible).SilApplication.DisplayAlerts = Doğru'Temiz filtreHatada Devam Et Sonrakiws.ShowAllDataHatada GoTo 0Alt Bitiş |
Hücre Kriterlerine Göre Satırı Sil
Bu, A sütunundaki hücre belirli ölçütleri karşılıyorsa (< 0) satırları silerek bir aralıkta döngü yapar:
1234567891011121314151617181920 | Alt DeleteRowsBasedonCellValue()'Değişkenleri BildirLastRow Kadar Uzun, FirstRow Kadar UzunSatır Kadar UzunActiveSheet ile'İlk ve Son Satırları Tanımlayınİlk Sıra = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Satırlar Arası Döngü (Aşağıdan Yukarıya)Satır için = LastRow'dan FirstRow'a Adım -1If .Range("A" & Row).Value < 0 O zaman.Range("A" & Row).EntireRow.DeleteBitirSonraki Satırİle bitmekAlt Bitiş |
VBA Programlama | Code Generator sizin için çalışıyor!
Hücre Boşsa Satırı Sil
Bu, A sütunundaki bir hücre boşsa bir satırı silerek bir aralıkta döngü yapar:
1234567891011121314151617181920 | Alt DeleteRowsBasedonCellValue()'Değişkenleri BildirinLastRow Kadar Uzun, FirstRow Kadar UzunSatır Kadar UzunActiveSheet ile'İlk ve Son Satırları Tanımlayınİlk Sıra = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Satırlar Arası Döngü (Aşağıdan Yukarıya)Satır için = LastRow'dan FirstRow'a Adım -1If .Range("A" & Row).Value = "" Sonra.Range("A" & Row).EntireRow.DeleteBitirSonraki Satırİle bitmekAlt Bitiş |
Boş Satırı Sil
Alternatif olarak, satırın tamamı boşsa bir satırı silmek istiyorsanız (biraz farklı bir yöntem için bağlantıya tıklayın), bu kodu kullanabilirsiniz:
1234567891011121314151617181920 | Alt DeleteBlankRows()'Değişkenleri BildirinLastRow Kadar Uzun, FirstRow Kadar UzunSatır Kadar UzunActiveSheet ile'İlk ve Son Satırları Tanımlayınİlk Sıra = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Satırlar Arası Döngü (Aşağıdan Yukarıya)Satır için = LastRow'dan FirstRow'a Adım -1WorksheetFunction.CountA(.Rows(Row)) = 0 ise.Satırlar(Satır).Tüm Satır.SilBitirSonraki Satırİle bitmekAlt Bitiş |
Hücre Değer İçeriyorsa Satırı Sil
Bu, A sütunundaki hücre boş değilse bir satırı silerek bir aralıkta döngü yapar:
1234567891011121314151617181920 | Alt DeleteRowsBasedonCellValue()'Değişkenleri BildirinLastRow Kadar Uzun, FirstRow Kadar UzunSatır Kadar UzunActiveSheet ile'İlk ve Son Satırları Tanımlayınİlk Sıra = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Satırlar Arası Döngü (Aşağıdan Yukarıya)Satır için = LastRow'dan FirstRow'a Adım -1If .Range("A" & Row).Value "" Sonra.Range("A" & Row).EntireRow.DeleteBitirSonraki Satırİle bitmekAlt Bitiş |
VBA Kodu Örnekleri Aramaktan Bıktınız mı? AutoMacro'yu deneyin!
Hücre Değerine Göre Satır Ekle
Bu, bir aralıkta döngü yapar ve o satırdaki belirli bir hücre "insert" diyorsa satırları ekler:
1234567891011121314151617181920 | Alt InsertRowsBasedonCellValue()'Değişkenleri BildirinLastRow Kadar Uzun, FirstRow Kadar UzunSatır Kadar UzunActiveSheet ile'İlk ve Son Satırları Tanımlayınİlk Sıra = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Satırlar Arası Döngü (Aşağıdan Yukarıya)Satır için = LastRow'dan FirstRow'a Adım -1If .Range("A" & Row).Value = "insert" O zaman.Range("A" & Row).EntireRow.InsertBitirSonraki Satırİle bitmekAlt Bitiş |