Bu öğretici, VBA kullanarak Excel'deki satırları ve sütunları silmenin farklı yollarını gösterecektir.
Tüm Satırı veya Sütunu Sil
VBA'da bir satırın tamamını silmek için bu kod satırını kullanın:
1 | Satırlar(1).Sil |
Dikkat edin Silmek satır silme yöntemi.
referans vermek yerine Satırlar Nesnesi, satırlara referanslarına göre başvurabilirsiniz. Menzil Nesnesi ile birlikte Tüm satır:
1 | Range("a1").EntireRow.Delete |
Benzer şekilde, bir sütunun tamamını silmek için şu kod satırlarını kullanın:
1 | Sütunlar(1).Sil |
1 | Range("a1").EntireColumn.Delete |
Birden Çok Satırı veya Sütunu Sil
Aynı mantığı kullanarak, aynı anda birden çok satırı da silebilirsiniz:
1 | Satırlar("1:3").Sil |
veya sütunlar:
1 | Sütunlar("A:C").Sil |
Burada alıntılarla çevrili belirli satır ve sütun numaralarını/harflerini referans aldığımıza dikkat edin.
Elbette, bir aralığın EntireRow'una da başvurabilirsiniz:
1 | Range("a1:a10").EntireRow.Delete |
Not: Aşağıdaki örnekler yalnızca satırların silinmesini göstermektedir, ancak yukarıda da görebileceğiniz gibi, sözdizimi sütunları silmekle hemen hemen aynıdır.
Boş / Boş Satırları Sil
Bu örnek, satırın tamamı boşsa bir satırı siler:
1234567891011 | Alt DeleteRows_EntireRowBlank()Aralık olarak hücreyi karartAralıktaki Her Hücre İçin("b2:b20")Application.WorksheetFunction.CountA(cell.EntireRow) = 0 isecell.EntireRow.DeleteBitirSonraki hücreAlt Bitiş |
Excel çalışma sayfası işlevini kullanır: COUNTA.
Hücre Boşsa Satırı Sil
Bu, o satırdaki belirli bir sütun boşsa bir satırı siler (bu durumda B sütunu):
1 | Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete |
Hücre Değerine Göre Satırı Sil
Bu, bir aralıkta dolaşacak ve o satırdaki belirli bir hücre değeri "sil" diyorsa satırları siler.
1234567891011 | Alt DeleteRowswithSpecificValue()Aralık olarak hücreyi karartAralıktaki Her Hücre İçin("b2:b20")Eğer cell.Value = "delete" isecell.EntireRow.DeleteBitirSonraki hücreAlt Bitiş |
Daha Fazla Satır ve Sütun Silme Örnekleri
Yinelenen Satırları Sil
Bu kod, bir aralıktaki tüm yinelenen satırları siler:
1 | Range("b2:c100").RemoveDuplicates Columns:=2 |
Sütunları ayarladığımıza dikkat edin:=2. Bu, VBA'ya satırların kopya olup olmadığını düşünürken ilk iki veri sütununu da kontrol etmesini söyler. Bir kopya, yalnızca her iki sütunda da yinelenen değerler olduğunda bulunur.
Bunu 1 olarak ayarlamış olsaydık, sadece ilk satır mükerrer değerler için kontrol edilecekti.
Tablo Satırlarını Sil
Bu kod, ListObjects'e başvurarak bir Tablodaki ikinci satırı siler.
1 | ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete |
Filtrelenmiş Satırları Sil
Yalnızca filtrelemeden sonra görünen satırları silmek için:
1 | Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete |
Aralıktaki Satırları Sil
Bu kod, aralıktaki tüm satırları siler:
1 | Range("a1:a10").EntireRow.Delete |
Seçili Satırları Sil
Bu kod, seçili tüm satırları siler:
1 | Selection.EntireRow.Delete |
Son Satırı Sil
Bu, B sütunundaki son kullanılan satırı siler:
1 | Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete |
2'yi 1'e değiştirerek, A sütunundaki son kullanılan satırı silebilirsiniz, vb.:
1 | Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete |
Sütunları Numaraya Göre Sil
Bir sütunu numarasına göre silmek için şöyle bir kod kullanın:
1 | Sütunlar (2).Sil |