Excel: Hapus baris jika sel di kolom tertentu kosong?

23

Saya seorang pemula yang lengkap untuk Excel jadi tolong permisi jika ini adalah sesuatu yang mudah dilakukan. Saya telah melihat banyak pilihan tetapi tidak dapat menemukan apa yang saya butuhkan.

Pada dasarnya, saya ingin menghapus semua baris yang tidak mengandung nilai di kolom C. Bagaimana cara saya melakukan ini?

Saya melakukan ini secara manual sekarang untuk 5000+ produk dan itu membuat saya gila.

John
sumber
2
Mengapa ada pertanyaan yang diajukan pada Stack OverFlow dengan solusi VBA dimigrasi ke Super User?
brettdj

Jawaban:

31

Anda dapat melakukannya dengan sangat cepat jika sel benar-benar kosong SpecialCells

Manual

  • Pilih Kolom C
  • Tekan F5, laluSpecial
  • Periksa Blanks, lalu OK(lihat langkah ini di gambar di bawah)
  • Hapus baris yang sekarang dipilih (mis. Klik kanan pada pilihan> Hapus sel ... > Seluruh baris atau melalui pita (lihat tangkapan layar kedua))

VBA

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

Cuplikan layar memperlihatkan menu Go To Special -> Blanks Cuplikan layar memperlihatkan cara menggunakan pita untuk menghapus seluruh baris dalam seleksi

brettdj
sumber
8

Inilah metode manual yang mudah

  1. Terapkan Auto Filterke lembar Anda
  2. Filter pada kolom CKosong
  3. Pilih semua baris yang terlihat
  4. Hapus Baris
  5. Hapus filter

Proses ini dapat diotomatisasi dengan VBA jika diperlukan. Coba jalankan perekam makro untuk memulai

chris neilsen
sumber
Sederhana namun efektif. Keajaiban bekerja!
Tiana987642
2

Saya pikir hal termudah dengan asumsi Anda tidak memiliki banyak rumus lain di sel lain adalah dengan hanya mengurutkan semuanya dengan Kolom C dan kemudian menghapus semua baris yang memiliki kosong untuk kolom C (fungsi sortir akan menempatkan nilai kosong untuk kolom C di bagian atas file).

Singkatnya:

  • Klik pada sel kertas yang dilipat di atas sel bertanda "1" dan di sebelah kiri sel bertanda "A" (untuk menyorot semua)
  • Klik Data, lalu urutkan
  • Urutkan berdasarkan Kolom C, dan jadikan nilai terkecil menjadi yang pertama
  • Cukup sorot baris ke bawah sampai Anda menekan baris pertama dengan nilai untuk Kolom C, dan hapus semua yang Anda sorot

sumber
0

Ini seharusnya bekerja.

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
Nick
sumber
-1

Anda bisa memasukkan kode ini dalam Modul Lembar (Klik Kanan Tab Lembar dan pilih "Lihat Kode"):

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
David
sumber
1
Ini menghapus baris di mana seluruh baris kosong? -Jika tidak, ini mirip dengan jawaban @drnewman. Pertanyaan secara khusus menyatakan: Hapus baris jika sel di kolom tertentu kosong.
Davidenko
Selamat Datang di Pengguna Super! Silakan baca pertanyaan itu lagi dengan seksama. Jawaban Anda tidak menjawab pertanyaan awal.
DavidPostill