VBA Kullanarak Satır Silme (14 Yol)

  • Bunu Paylaş
Hugh West

Kullanarak satır silmenin en kolay yollarından bazılarını arıyorsanız VBA o zaman doğru yerdesiniz.

Şimdi ana makaleye geçelim.

Çalışma Kitabını İndirin

VBA Satır Sil.xlsm

VBA Kullanarak Satır Silmenin 14 Yolu

Burada, satırları silme yollarını göstermek için üç veri tablosuna sahibim VBA İlk tabloda bazı Ürünler bir şirketin ve onların Boyutlar , Fiyatlar .

İkincisinde biraz Ürün Kodları ve bunlara karşılık gelen Ürün Boyutları ve Fiyatlar

Ve sonuncusu biraz içeriyor Proje İsimleri ve onların ilgili Başlangıç Tarihleri ve Maliyetler .

Makaleyi oluşturmak için şunları kullandım Microsoft Excel 365 sürümünü kullanıyorsanız, uygunluğunuza göre diğer sürümleri de kullanabilirsiniz.

Yöntem-1: VBA Kullanarak Tek Bir Satırı Silme

Diyelim ki, aşağıdakileri içeren satırı silmek istiyorsunuz Ürün Ayakkabı 1, ve bu tek satırı silmek için şu yöntemi izleyebilirsiniz.

Adım-01 :

➤ Şuraya git Geliştirici Tab>> Visual Basic Opsiyon

O zaman Visual Basic Düzenleyicisi açılacak.

➤ Şuraya git Ekleme Tab>> Modül Opsiyon

Bundan sonra, bir Modül oluşturulacaktır.

Adım-02 :

➤ Aşağıdaki kodu yazın

 Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub 

İşte, "Single" çalışma sayfası adıdır ve Satırlar(7) satır numarasını seçecektir.

.EntireRow.Delete tüm 7. satırı silecektir.

Basın F5

Sonuç :

Bu şekilde, aşağıdakileri içeren satırı sileceksiniz Ürün isim Ayakkabı 1 .

Daha fazlasını okuyun: Excel'de Satırlar Nasıl Silinir: 7 Yöntem

Yöntem-2: VBA Kullanarak Birden Fazla Satırı Silme

içeren satırlar gibi birden fazla satırı silmek istiyorsanız Ürün isimler Ayakkabı1 , Ayakkabı2, ve Ayakkabı3 sonra bunu takip edebilirsiniz VBA Kod.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow2() Satırlar(13).TümSatır.Sil Satırlar(10).TümSatır.Sil Satırlar(7).TümSatır.Sil End Sub 

Burada 13, 10 ve 7 numaralı satırlar silinecektir ve satır numaralarını seri olarak yazarken bu koddaki gibi son satır numarasından ilk satır numarasına doğru yazmanız gerekir.

Aksi takdirde, 7. Satır gibi ilk satırı sildikten sonra, bu satırın altında kalan satırlar bir satır yukarı taşınacak ve böylece 10. Satır 9. Satır ve 13. Satır 12. Satır olacaktır. Bu nedenle, doğru satırları silemeyeceksiniz.

Basın F5

Sonuç :

Ardından, aşağıdakileri içeren satırları sileceksiniz Ürün isimler Ayakkabı 1 , Ayakkabı2, ve Ayakkabı3 .

Daha fazlasını okuyun: Excel'de Birden Fazla Satır Nasıl Silinir (3 Yöntem)

Yöntem-3: Seçerek Satır Silme

Burada, bir satırı o satırın aktif bir hücresine göre silmenin yolunu göstereceğim.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Aktif bir hücreye sahip olan satırı silecektir.

➤ Kodu kaydedin.

Adım-02 :

➤Silmek istediğiniz satırdaki herhangi bir hücreyi seçin (Burada hücreyi seçtim B7 )

➤ Şuraya git Geliştirici Tab>> Makrolar Opsiyon

Bundan sonra Makro Sihirbaz açılacaktır.

➤Seçin Makro adı dltrow3 ve basın Koşmak

Sonuç :

Daha sonra, aşağıdakileri içeren satırı sileceksiniz Ürün isim Ayakkabı 1 .

Yöntem-4: Seçimdeki Tüm Satırları Silme

Bir seçimin tüm satırlarını silmek için bu yöntemi izleyebilirsiniz.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Seçimin tüm satırlarını silecektir.

➤ Kodu kaydedin.

Adım-02 :

➤Silmek istediğiniz satır aralığını seçin (Burada aralığı seçtim B7:D9 )

➤ Şuraya git Geliştirici Tab>> Makrolar Opsiyon

Bundan sonra Makro Sihirbaz açılacaktır.

➤Seçin Makro adı dltrow4 ve basın Koşmak

Sonuç :

Ardından, aşağıdakileri içeren satırları sileceksiniz Ürün isimler Ayakkabı 1 , Ceket1, ve Ceket2 .

Daha fazlasını okuyun: Excel'de Seçili Satırlar Nasıl Silinir (8 Yaklaşım)

Yöntem-5: Herhangi Bir Hücre Boşsa Satırı Silme

Burada, boş bir hücre var B9 (bu yöntem için bu hücreden değeri kaldırdım) ve bir VBA koduna sahip satırı sileceğim B9 Hücre.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

Aralıktaki tüm satırları silecektir "B5:D13" herhangi bir boş hücreye sahip olmak.

Basın F5

Sonuç :

Ardından, boş hücreyi içeren satırı silebileceksiniz.

Daha fazlasını okuyun: Excel'de Boş Satırlar Nasıl Kaldırılır (11 Yöntem)

Yöntem-6: Tüm Satır Boşsa Satırı Silme

Burada, boş bir hücre var B9 (bu yöntem için değerleri kaldırdım) ve 12. Satır olan boş bir satır (bu yöntem için değerleri kaldırdım) ve bir VBA kodu ve COUNTA işlevi Boş olan satırı sileceğim.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" veri aralığıdır ve İÇİN döngüsü bu aralıktaki her hücre için çalışacaktır.

CountA(cell.EntireRow) boş olmayan hücrelerin sayısını döndürecek ve 0 olduğunda satır silinecektir.

Basın F5

Sonuç :

Bundan sonra, boş satırı silebileceksiniz ancak bu satırın tüm hücreleri boş olmayan hiçbir satırı silmeyecektir.

Daha fazlasını okuyun: Excel'de Boş Satırları Silmek için VBA Nasıl Kullanılır

Yöntem-7: Her n'inci Satırı Silme

Bu yöntemi izleyerek her n'inci satırı (bu durumda her 3'üncü satırı) silebilirsiniz.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub 

"B5:D13" veri aralığıdır ve rc bu aralığın toplam satır sayısını döndürecektir. 9 .

İşte, burada İÇİN döngüsü son satırdan başlayacaktır. rc veya 9 bu durumda ve ilk satırla biter.

Adım -3 her şeyi silmeye yardımcı olacaktır 3'üncü bu aralıktaki satır.

Basın F5

Sonuç :

Ardından, aşağıdakileri içeren satırları sileceksiniz Ürün isimler Ayakkabı 1 , Ayakkabı2, ve Ayakkabı3 .

Daha fazlasını okuyun: Excel'de Her n'inci Satır Nasıl Silinir (En Kolay 6 Yol)

Benzer Okumalar:

  • Excel VBA ile Seçili Satırlar Nasıl Silinir (Adım Adım Kılavuz)
  • Excel'de Kullanılmayan Satırları Silme (8 Kolay Yol)
  • Excel'de Gizli Satırlar Nasıl Silinir (3 Yöntem)
  • Excel'de Sonsuz Satır Silme (5 Kolay Yol)
  • Excel'de Sonsuza Kadar Devam Eden Satırlar Nasıl Silinir (4 Kolay Yol)

Yöntem-8: Hücre Değerine Göre Satır Silme

Bu yöntemde, belirli bir değere sahip satırı sileceğim Gömlek 2 .

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" veri aralığıdır ve İÇİN döngüsü bu aralıktaki her hücre için çalışacaktır.

Bir satırın herhangi bir hücresi değer içeriyorsa "Gömlek 2" sonra satır silinecektir.

Basın F5

Sonuç :

Bu şekilde, aşağıdakileri içeren satırı sileceksiniz Ürün isim Gömlek 2 .

Daha fazlasını okuyun: Excel'de Hücre Değer İçeriyorsa Satırı Silmek için VBA Makrosu (2 Yöntem)

Yöntem-9: Yinelenen Satırları Silme

Burada, iki satırda bir Ürün Kodu 97375 ve bu yüzden aşağıda kırmızı bir kutu ile işaretlenmiş olan bu satırlardan birini silmek istiyorum.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

İşte, "B5:D13" veri aralığıdır ve Sütunlar:=1 yalnızca başlangıç sütunu olan tek bir sütunda yinelenen değerleri arayacağı anlamına gelir Sütun B ancak diğer sütunlarda da arama yapmak istiyorsanız bu sayıyı ihtiyaçlarınıza göre kullanabilirsiniz.

Basın F5

Sonuç :

Daha sonra, başka bir satıra benzeyen satırı silebileceksiniz.

Daha fazlasını okuyun: Excel'de VBA ile Yinelenen Satırlar Nasıl Silinir (8 Etkili Yol)

Yöntem-10: Bir Tablodaki Satırları Silme

Diyelim ki, adı şu olan aşağıdaki tabloya sahipsiniz Tablo1 ve şimdi bu tablonun 6 numaralı satırını silmek istiyorsunuz. Bunu yapmak için şu yöntemi izleyebilirsiniz.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow10() ActiveWorkbook.Worksheets("Tablo").ListObjects("Tablo1").ListRows(6).Delete End Sub 

İşte, "Masa" sayfa adıdır, "Tablo1" tablo adı ve 6 bu tablonun silmek istediğiniz satır numarasıdır.

Basın F5

Sonuç :

Bu şekilde, bu tablonun istediğiniz satırını sileceksiniz.

Daha fazlasını okuyun: Excel VBA Kullanarak Bir Sütuna Dayalı Yinelenen Satırlar Nasıl Kaldırılır

Yöntem-11: Filtrelemeden Sonra Görünür Satırları Silme

Burada, aşağıdakiler tarafından filtrelenen bir veri tablom var Fiyat sütunundan daha büyük değerler için $1,500.00 ve filtrelemeden sonra tüm görünür satırları silmek istiyorum.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

İşte, "B5:D13" veri aralığıdır.

Basın F5

Şimdi, filtrelemeden sonra görünür satırların tümü silinecektir. Filtre içinde işaret Fiyat sütun.

üzerine tıklayın Tümünü Seçin seçenek

Basın TAMAM.

Sonuç :

Son olarak, gizli satırları veri tablosunda geri alacaksınız.

Daha fazlasını okuyun: Excel'de VBA ile Satırlar Nasıl Filtrelenir ve Silinir (2 Yöntem)

Yöntem-12: Son Aktif Hücreye Göre Satır Silme

Burada, son aktif hücrem hücre B13 ve aşağıdaki veri tablosunun son etkin hücresine sahip olan bunu silmek istiyorum.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub 

İşte, 2 anlamına gelir Sütun B üzerinde aktif hücrem var, numarayı ihtiyaçlarınıza göre değiştirebilirsiniz.

Basın F5

Sonuç :

Bu şekilde son aktif satırınızı silmiş olursunuz.

Daha fazlasını okuyun: Birden Çok Hücre Değerine (3 Kriter) Dayalı Satırları Silmek için Excel VBA Kodu

Yöntem-13: Herhangi Bir Dizgiye Sahip Satırları Silme

Herhangi bir dizeye sahip satırları silmek istediğinizi varsayalım ve bunu yapmak için bu yöntemi takip edebilirsiniz.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub 

İşte, "string" sayfa adıdır, bu veri aralığının ilk satır numarası 5 ve başlangıç sütun numarası 2

Bu ile deyimi, bir nesne veya kullanıcı tanımlı türü bir dizi deyim için bir kez belirtmenizi sağlar.

Hatada Sonraki Devam Et deyimi, bir çalışma zamanı hatası oluştuğunda, kontrolün hatanın oluştuğu deyimi izleyen deyime gideceğini belirtir.

SonSatır ve LastColumn veri aralığının son satırını ve sütununu döndürür.

SpecialCells(xlCellTypeConstants, xlTextValues) aralıktaki herhangi bir metin değerine sahip satırları seçecektir.

Basın F5

Sonuç :

Daha sonra, herhangi bir metin dizesine sahip satırları sileceksiniz.

Daha fazlasını okuyun: Satırları Silmek için Excel Kısayolu (Bonus Tekniklerle)

Yöntem-14: Tarihlere Göre Satır Silme

Burada, özel bir tarihe sahip satırları sileceğim 11/12/2021 (aa/gg/yyyy) kullanarak bu yöntemde DATEVALUE işlevi .

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End If End WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

İşte, "Tarih" sayfa adıdır, bu veri aralığının ilk satır numarası 5 ve kriter sütunu (hangi sütunda tarih varsa) numarası 3 .

Bu ile deyimi, bir nesne veya kullanıcı tanımlı türü bir dizi deyim için bir kez belirtmenizi sağlar.

Hatada Sonraki Devam Et deyimi, bir çalışma zamanı hatası oluştuğunda, kontrolün hatanın oluştuğu deyimi izleyen deyime gideceğini belirtir.

SonSatır veri aralığının son satırını döndürür ve burada İÇİN döngüsü son satırdan başlayacaktır. SonSatır veya 6 bu durumda, ve ilk satır ile biter.

DATEVALUE metin tarihini değere dönüştürecektir.

İşte, Birlik tarihe sahip hücrelere karşılık gelen çoklu aralıkların birleşimini döndürür 11/12/2021 ve son olarak aralıklar silinecektir.

Basın F5

Sonuç :

Bundan sonra, belirli bir tarihe sahip satırları sileceksiniz 11/12/2021 .

İlgili İçerik: Belirli Verileri İçeren Satırları Silmek için Excel VBA (9 Örnek)

Uygulama Bölümü

Kendi kendinize pratik yapmanız için bir Uygulama adlı bir sayfada aşağıdaki gibi bir bölüm Uygulama Lütfen bunu kendiniz yapın.

Sonuç

Bu yazıda, en kolay kullanım yollarını ele almaya çalıştım VBA Umarım faydalı bulursunuz. Herhangi bir öneriniz veya sorunuz varsa, bunları yorum bölümünde paylaşmaktan çekinmeyin.

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.