Excel: Belirli bir sütundaki hücre boşsa satır silinsin mi?


23

Excel için tam bir acemi değilim, bu yüzden bu kolay bir şey varsa lütfen affedersiniz. Birçok seçeneğe baktım ama ihtiyacım olanı bulamadım.

Temel olarak, C sütununda bir değer içermeyen tüm satırları silmek istiyorum. Bunu nasıl yapabilirim?

Bunu şu anda 5000'den fazla ürün için manuel olarak yapıyorum ve bu beni deli ediyor.


2
Süper Kullanıcıya taşınan VBA çözümleriyle Stack OverFlow hakkında neden bir soru soruldu?
brettdj

Yanıtlar:


31

Hücreleri kullanarak gerçekten boşsa, bunu çok hızlı bir şekilde yapabilirsiniz SpecialCells

Manuel

  • C Sütununu Seçin
  • Düğmesine F5ve ardındanSpecial
  • Kontrol edin Blanks, ardından OK(aşağıdaki resimdeki bu adıma bakın)
  • Şimdi seçilen satırları silin (örneğin, seçimde sağ tıklayın> Hücreleri sil ... > Tüm satır veya şerit üzerinden (ikinci ekran görüntüsüne bakın))

VBA

Sub QuickCull()
    On Error Resume Next
    Columns("C").SpecialCells(xlBlanks).EntireRow.Delete
End Sub

Özel Git -> Boşluklar menüsünü gösteren ekran görüntüsü Seçimdeki tüm satırları silmek için şeridin nasıl kullanılacağını gösteren ekran görüntüsü


8

İşte kolay bir manuel yöntem

  1. Auto FilterSayfanıza bir uygula
  2. CBoş sütundaki filtre
  3. Tüm görünür satırları seç
  4. Satırları Sil
  5. Filtreyi kaldır

Gerekirse bu işlem VBA ile otomatikleştirilebilir. Başlamak için makro kaydediciyi çalıştırmayı deneyin


Basit ama etkili. Harikalar yaratın!
Tiana987642

2

Diğer hücrelerdeki diğer formüllerin bir demetine sahip olmadığınızı varsayan en kolay şey, her şeyi Sütun C'ye göre sıralamak ve daha sonra sütun C için boş olan tüm satırları silmek (sıralama işlevi boş değerleri koyacaktır) dosyanın üstündeki C sütunu için).

Özetle:

  • "1" işaretli hücrenin üstündeki ve "A" işaretli hücrenin solundaki katlanmış kağıt hücresini tıklayın (tümünü vurgulamak için)
  • Veri'ye tıklayın ve ardından sıralayın
  • C Sütununa göre sıralayın ve önce en küçük değerleri yapın
  • Sütun C için bir değere sahip ilk satıra varana kadar satırları vurgulayın ve vurguladığınız her şeyi silin

0

Bu çalışmalı.

Columns("C:C").Select
Set rngRange = Selection.CurrentRegion
lngNumRows = rngRange.Rows.Count
lngFirstRow = rngRange.Row
lngLastRow = lngFirstRow + lngNumRows - 1
lngCompareColumn = ActiveCell.Column
For lngCurrentRow = lngLastRow To lngFirstRow Step -1
If (Cells(lngCurrentRow, lngCompareColumn).Text = "") Then _
Rows(lngCurrentRow).Delete
Next lngCurrentRow

-1

Bu kodu Yaprak Modülüne koyabilirsiniz (Sağ Fare Tıklama Sayfa Sekmesi ve "Kodu Görüntüle" yi seçebilirsiniz):

Sub Delete_Blank_Rows()


'Deletes the entire row within the selection if the ENTIRE row contains no data.

'We use Long in case they have over 32,767 rows selected.

Dim i As Long
Dim LastRow As Integer

'We turn off calculation and screenupdating to speed up the macro.

 With Application
     .Calculation = xlCalculationManual
     .ScreenUpdating = False

     'Reduce the work on the calc and define the range

     LastRow = Range("A" & Rows.Count).End(xlUp).Row
     Range("A2:A" & LastRow).Select

     'We work backwards because we are deleting rows.

     For i = Selection.Rows.Count To 1 Step -1
          If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
              Selection.Rows(i).EntireRow.Delete
          End If
     Next i

    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With

End Sub

1
Bu, tüm satırın boş olduğu satırları siler. -eğer yaparsa, @drnewman yanıtına benzer. Soru özellikle belirtiyor: Belirli bir sütundaki hücre boşsa satırı silin.
Davidenko

Süper Kullanıcıya Hoş Geldiniz! Lütfen soruyu tekrar dikkatlice okuyun. Yanıtınız yok değil orijinal soruya cevap.
DavidPostill
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.