Excel: Xóa hàng nếu ô trong cột nhất định trống?


23

Tôi là một người mới hoàn toàn với Excel, vì vậy xin vui lòng cho tôi biết nếu đây là một việc dễ làm. Tôi đã xem qua rất nhiều lựa chọn nhưng không thể tìm thấy thứ tôi cần.

Về cơ bản, tôi muốn xóa tất cả các hàng không chứa giá trị trong cột C. Tôi sẽ thực hiện việc này như thế nào?

Tôi đang làm điều này bằng tay ngay bây giờ cho hơn 5000 sản phẩm và nó khiến tôi phát điên.


2
Tại sao một câu hỏi được đặt ra trên Stack OverFlow với các giải pháp VBA được chuyển sang Super User?
brettdj

Câu trả lời:


31

Bạn có thể thực hiện việc này rất nhanh nếu các ô thực sự trống bằng cách sử dụng SpecialCells

Hướng dẫn sử dụng

  • Chọn cột C
  • Nhấn F5, sau đóSpecial
  • Kiểm tra Blanks, sau đó OK(xem bước này trong pic ở phía dưới)
  • Xóa các hàng hiện được chọn (ví dụ: nhấp chuột phải vào lựa chọn> Xóa các ô ... > Toàn bộ hàng hoặc qua ruy-băng (xem ảnh chụp màn hình thứ hai))

VBA

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

Ảnh chụp màn hình hiển thị menu Đi tới Đặc biệt -> Khoảng trống Ảnh chụp màn hình cho thấy cách sử dụng ruy băng để xóa toàn bộ hàng trong vùng chọn


8

Đây là một phương pháp thủ công dễ dàng

  1. Áp dụng một Auto Filtercho tờ của bạn
  2. Lọc trên cột CTrống
  3. Chọn tất cả các hàng có thể nhìn thấy
  4. Xóa hàng
  5. Xóa bộ lọc

Quá trình này có thể được tự động hóa với VBA nếu được yêu cầu. Hãy thử chạy trình ghi macro để bắt đầu


Đơn giản mà hiệu quả. Làm việc kỳ diệu!
Tiana987642

2

Tôi nghĩ rằng điều dễ nhất giả sử bạn không có một loạt các công thức khác trong các ô khác là chỉ sắp xếp mọi thứ theo Cột C và sau đó xóa tất cả các hàng có trống cho cột C (hàm sắp xếp sẽ đặt các giá trị trống cho cột C ở đầu tệp).

Tóm tắt:

  • Nhấp chuột vào ô giấy được gấp ở trên ô được đánh dấu "1" và ở bên trái của ô được đánh dấu "A" (để tô sáng tất cả)
  • Bấm vào Dữ liệu, rồi sắp xếp
  • Sắp xếp theo Cột C và đặt giá trị nhỏ nhất lên đầu tiên
  • Chỉ cần tô sáng các hàng xuống cho đến khi bạn nhấn vào hàng đầu tiên với giá trị cho Cột C và xóa mọi thứ bạn đã tô sáng

0

Điều này nên làm việc.

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

Bạn có thể đặt mã này vào Mô-đun Trang tính (Nhấp chuột phải vào Tab Trang tính và chọn "Xem mã"):

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
Điều này xóa các hàng trong đó toàn bộ hàng trống? -Nếu vậy, nó tương tự như câu trả lời của @drnewman. Câu hỏi cụ thể: Xóa hàng nếu ô trong cột nhất định trống.
Davidenko

Chào mừng bạn đến với Siêu người dùng! Xin vui lòng đọc lại câu hỏi một cách cẩn thận. Câu trả lời của bạn không trả lời câu hỏi ban đầu.
DavidPostill
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.