VBA Kullanarak Excel'de Tüm Satır Nasıl Silinir (Örnekler)

Satır ekleme ve silme, Excel ile çalışırken günlük genel görevlerin bir parçasıdır.

Bunu çalışma sayfasının kendisinden kolayca yapabilirsiniz, ancak bazen Excel'deki satırları silmek için VBA yolunu kullanmak isteyebilirsiniz. Bunlar, belirli bir satırın silinmesi, seçimdeki birden çok satırın silinmesi, alternatif satırların veya içinde belirli bir değeri olan satırların silinmesi olabilir.

Bu derste, VBA (birden çok senaryo) kullanarak Excel'de satırları nasıl sileceğinizi göstereceğim.

O halde başlayalım!

VBA kullanarak Tüm Satırı Sil

VBA kullanarak Excel'de bir satırın tamamını silmek için EntireRow.Delete yöntemini kullanmanız gerekir.

Örneğin, bir çalışma sayfasındaki ilk satırın tamamını silmek istiyorsanız aşağıdaki kodu kullanabilirsiniz:

Sub DeleteEntireRow() Rows(1).EntireRow.Delete End Sub

Yukarıdaki kod önce silinmesi gereken satırı belirtir (ki bu parantez içindeki sayı belirtilerek yapılır) ve ardından silmek için EntireRow.Delete yöntemini kullanır.

Ayrıca bu satırları kodda belirterek birden çok satırı silebilirsiniz.

Örneğin, aşağıdaki kod, çalışma sayfasındaki 1, 5 ve 9 numaralı satırı siler:

Sub DeleteEntireRow() Rows(9).EntireRow.Delete Rows(5).EntireRow.Delete Rows(1).EntireRow.Delete End Sub

Yukarıdaki kod aynı mantığı kullanır, burada satır numaralarını belirtir ve Excel bu satırları birer birer siler.

ÖNEMLİ: Yukarıdaki koda benzer bir şey içeren satırları silerken, silmeye alttan başlayıp yukarı çıkmayı unutmayın. Örneğin, en üstten başlayıp önce 1. satırı silerseniz, altındaki tüm satırlar bir satır yukarı kaydırılır ve numaralandırma kapalı olur (5. satır 4. satır olur vb.)

Seçimdeki Tüm Satırları Sil

Seçili hücre aralığındaki tüm satırları silmek isterseniz, aşağıdaki VBA makro kodunu kullanabilirsiniz:

Sub DeleteEntireRow() Selection.EntireRow.Delete End Sub

Yukarıdaki kod, tüm seçim için EntireRow.Delete yöntemi için geçerlidir.

Alternatif satırları sil (veya Her Üçüncü/Dördüncü/N. Satırı Sil)

Bazen, her ikinci satırın (veya üçüncü, dördüncü veya N. satırların) işe yaramaz olduğu ve silinmesi gereken bir veri dökümü alabilirsiniz.

Her ikinci satırın boş olduğu ve silinmesi gereken finansal verilerle çalışırdım.

Bu, VBA'nın gerçekten parladığı senaryo türüdür.

Seçimdeki tüm satırlardan geçecek ve her ikinci satırı silecek VBA kodu aşağıdadır:

Sub DeleteAlternateRows() RCount = Selection.Rows.Count For i = RCount To 1 Step -2 Selection.Rows(i).EntireRow.Delete Sonraki i End Sub

Bu VBA kodunun nasıl çalıştığını açıklamama izin verin.

İlk önce bir değişken kullandım RCount seçimdeki toplam satır sayısını almak için.

Ardından, bunu kaç satır olduğu kadar çalıştırmak için Bir Sonraki Döngü kullandım. Örneğin, 12 satır varsa, bu döngü 12'den 1'e kadar (yani 12 kez) çalışacaktır. Bir satır silindiğinde satır numaralarının değişmesini istemediğimiz için bunu seçimdeki son satırdan ilk satıra kadar çalıştırmak önemlidir.

Ayrıca, her satırı silmemiz gerektiğinden (aşağıdan yukarıya) Adım -2 kullanılır. Her üçüncü satırı silmek isterseniz -3'ü kullanabilirsiniz.

VBA döngüsü içinde, her alternatif satırı silmek için Selection.Rows(i).EntireRow.Delete yöntemini kullandım.

VBA ile Boş Satırları Sil

Tüm boş satırları silmek için EntireRow.Delete yöntemini de kullanabilirsiniz.

Aşağıda, seçilen veri kümesindeki boş hücreleri seçecek ve tüm satırı silecek VBA kodu bulunmaktadır.

Sub DeleteBlankRows() Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

Yukarıdaki kod, boş olan tüm hücreleri seçmek ve silmek için SpecialCells özelliğini kullanır. Bu, tüm boş hücreleri seçmek için 'Özel Git' iletişim kutusunu kullanmamıza da izin veren yöntemle aynıdır.

Bu boş hücreler SpecialCell kullanılarak tanımlandıktan sonra, bunlar EntireRow.Delete yöntemi kullanılarak silinir.

Not: Bu yöntem, boş olan hücreleri seçer ve tüm satırın boş olup olmadığını kontrol etmez. Bu nedenle, herhangi bir hücre arka arkaya boşsa, bu yine de tüm satırı siler.

Belirli Bir Kelime/Değere Sahip Satırları Sil

Ayrıca, seçilen aralıktaki her hücrede gezinmek ve bir hücrenin belirli bir metin veya değer içerdiği tüm satırları silmek için basit bir VBA kodu kullanabilirsiniz.

Örneğin, bir veri kümeniz olduğunu ve seçimin 2. sütununda Yazıcı metnine sahip tüm hücreleri silmek istediğimi varsayalım.

Bunu yapacak kod aşağıdadır:

Sub DeleteRowswithSpecificValue() For i = Selection.Rows.Count To 1 Step -1 If Cells(i, 2).Value = "Printer" Then Cells(i, 2).EntireRow.Delete End If Next i End Sub

Yukarıdaki kod önce seçimdeki toplam satır sayısını sayar. Bu, döngünün yalnızca bu kadar çok kez çalıştırıldığından emin olacaktır. Ardından, 2. Sütundaki tüm hücrelerden geçmek için "Sonraki Döngü İçin"i kullanır.

IF THEN ELSE ifadesi daha sonra 2. sütundaki her hücredeki değeri kontrol etmek için kullanılır. Ve değerin/metnin belirtilen metinle eşleşmesi durumunda (bu örnekte 'Yazıcı'dır).

Bu örnekte, metnin belirli bir dizeyle eşleşip eşleşmediğini kontrol ettim. Bunu değerlerle de yapabilirsiniz. Örneğin, satış değerinin 1000'den küçük veya 1000'den fazla olduğu tüm satırları silebilirsiniz.

Not: Burada dikkat edilmesi gereken önemli bir nokta, döngünün Seçim.Satırlar.Sayı 1'e Kadar bir satır silindiğinde, üstündeki satırları etkilemediğinden emin olmak için.

Bu VBA Kodu Nasıl Kullanılır

Şimdi tüm satırı silmek için bu eğitimde bahsedilen tüm kodları nasıl kullanacağınızı göstereyim.

Bu kodları Excel VB Editor'da bir modüle kopyalayıp yapıştırmanız gerekir. Bu kodları kopyaladıktan sonra makro kodlarını çalıştırabilirsiniz.

Aşağıda, bu VBA kodlarını bir modüle kopyalayıp yapıştırma adımları verilmiştir:

  1. ALT tuşunu basılı tutun ve F11 tuşuna basın (veya Mac'te Function + Option + F11). Bu, VB Düzenleyiciyi açacaktır
  2. VB Editöründe, sol tarafta proje gezgini olacak. Göremiyorsanız, Görünüm seçeneğine gidin ve ardından Proje Gezgini'ne tıklayın.
  3. Proje Gezgini'nde herhangi bir nesneye sağ tıklayın (kodu çalıştırmak istediğiniz çalışma kitabı için).
  4. Ekle'ye gidin ve ardından Modül'e tıklayın. Bu, çalışma kitabı için yeni bir Modül ekleyecektir.
  5. Yukarıdaki kodları modüle kopyalayıp yapıştırın.

Ve bu kodları çalıştırmak için, imleci kodun herhangi bir yerine (çalıştırmak istediğiniz) yerleştirebilir ve F5 tuşuna basabilirsiniz (veya VBA araç çubuğundaki yeşil üçgene tıklayabilirsiniz).

Ayrıca Excel'de VBA makro kodlarını çalıştırmanın farklı yolları hakkında ayrıntılı bir eğitim yazdım.

Bu kodlardan herhangi birini oldukça sık kullanmanız gerekiyorsa, bunları Kişisel Makro Çalışma Kitabına ve ardından QAT'ye eklemeyi de düşünebilirsiniz. Bu şekilde, kod tek bir tıklama ile çalışma kitaplarınızın herhangi birinde size sunulacaktır.

Yani bunlar, Excel'deki tüm satırları silmek için kullanabileceğiniz bazı VBA kodlarıydı (farklı senaryolarda). Aynı mantık, satırlar yerine sütunları silmek istediğinizde de uygulanabilir (kod örneklerinde karşılık gelen ayarlama ile).

Umarım bu öğreticiyi faydalı bulmuşsunuzdur!

wave wave wave wave wave