Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Trong bài viết này

  • Xóa toàn bộ hàng hoặc cột
    • Xóa nhiều hàng hoặc cột
  • Xóa các hàng trống / trống
    • Xóa hàng nếu ô trống
  • Xóa hàng dựa trên giá trị ô
  • Thêm các ví dụ về hàng và cột xóa
    • Xóa các hàng trùng lặp
    • Xóa các hàng bảng
    • Xóa các hàng được lọc
    • Xóa hàng trong phạm vi
    • Xóa các hàng đã chọn
    • Xóa hàng cuối cùng
    • Xóa cột theo số

Hướng dẫn này sẽ trình bày các cách khác nhau để xóa các hàng và cột trong Excel bằng VBA.

Xóa toàn bộ hàng hoặc cột

Để xóa toàn bộ hàng trong VBA, hãy sử dụng dòng mã này:

Rows(1).Delete

Lưu ý rằng chúng tôi sử dụng phương thức xóa để xóa một hàng.Delete method to delete a row.

Thay vì tham chiếu đối tượng hàng, bạn có thể tham chiếu các hàng dựa trên đối tượng phạm vi của chúng với Entirerow:Rows Object, you can reference rows based on their Range Object with EntireRow:

Range("a1").EntireRow.Delete

Tương tự như xóa toàn bộ cột, sử dụng các dòng mã sau:

Columns(1).Delete
Range("a1").EntireColumn.Delete

Xóa nhiều hàng hoặc cột

Xóa các hàng trống / trống

Rows("1:3").Delete

Xóa hàng nếu ô trống

Columns("A:C").Delete

Xóa hàng dựa trên giá trị ô

Thêm các ví dụ về hàng và cột xóa

Range("a1:a10").EntireRow.Delete

Xóa các hàng trùng lặp

Xóa các hàng trống / trống

Xóa hàng nếu ô trống

Sub DeleteRows_EntireRowBlank()

Dim cell As Range

For Each cell In Range("b2:b20")
    If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then
        cell.EntireRow.Delete
    End If
Next cell

End Sub

Xóa hàng dựa trên giá trị ô

Xóa hàng nếu ô trống

Xóa hàng dựa trên giá trị ô

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Xóa hàng dựa trên giá trị ô

Thêm các ví dụ về hàng và cột xóa

Sub DeleteRowswithSpecificValue()

Dim cell As Range

For Each cell In Range("b2:b20")
    If cell.Value = "delete" Then
        cell.EntireRow.Delete
    End If
Next cell

End Sub

Thêm các ví dụ về hàng và cột xóa

Xóa các hàng trùng lặp

Xóa các hàng bảng

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Xóa các hàng được lọc

Xóa các hàng trùng lặp

Xóa các hàng bảng

Range("a1").EntireRow.Delete
0

Xóa các hàng được lọc

Xóa hàng trong phạm vi

Xóa các hàng bảng

Xóa các hàng được lọc

Range("a1").EntireRow.Delete
1

Xóa các hàng được lọc

Xóa hàng trong phạm vi

Range("a1").EntireRow.Delete
2

Xóa các hàng đã chọn

Xóa hàng trong phạm vi

Xóa các hàng đã chọn

Range("a1:a10").EntireRow.Delete

Xóa các hàng đã chọn

Xóa hàng cuối cùng

Range("a1").EntireRow.Delete
4

Xóa hàng cuối cùng

Xóa cột theo số

Range("a1").EntireRow.Delete
5

Hướng dẫn này sẽ trình bày các cách khác nhau để xóa các hàng và cột trong Excel bằng VBA.

Range("a1").EntireRow.Delete
6

Xóa cột theo số

Hướng dẫn này sẽ trình bày các cách khác nhau để xóa các hàng và cột trong Excel bằng VBA.

Range("a1").EntireRow.Delete
7

Điểm mấu chốt: Tìm hiểu cách sử dụng các macro VBA để xóa các hàng dựa trên các giá trị hoặc điều kiện ô. Bao gồm hướng dẫn video và mã mẫu. Learn how to use VBA macros to delete rows based on cell values or conditions. Includes video tutorial and sample code.

Cấp độ kỹ năng: Trung cấp Intermediate

Video hướng dẫn

Xem trên YouTube và đăng ký kênh của chúng tôi

Tải xuống tệp Excel

Dưới đây là tệp tôi sử dụng trong video trên có chứa các ví dụ mã macro VBA.

Quá trình chuẩn bị dữ liệu của bạn có bao gồm xóa cùng một hàng dựa trên một điều kiện không? Nếu vậy, bạn có thể sử dụng một macro để xóa ngay bất kỳ hàng nào có giá trị cụ thể, ngày hoặc thậm chí các ô trống.

Quá trình tổng thể là hai bước đơn giản:two simple steps:

  1. Bước đầu tiên là lọc các hàng dựa trên tiêu chí lọc cho các giá trị bị xóa.filter the rows based on filter criteria for the values to be deleted.
  2. Sau đó, macro xóa các ô có thể nhìn thấy trong phạm vi.deletes the visible cells in the range.

Quá trình giải thích

Dưới đây là hình ảnh của bộ dữ liệu có một số ô trống trong cột E (sản phẩm). Bạn có thể thấy một trong những ô trống đó là E6.

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Để loại bỏ các hàng có các ô trống như thế này, Macro trước tiên áp dụng bộ lọc cho cột sản phẩm.

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Tiếp theo, macro chỉ cần xóa tất cả các hàng có thể nhìn thấy được để lại bởi bộ lọc. Nó sử dụng phương pháp SpecialCells để tạo tham chiếu đến các ô có thể nhìn thấy.

Điều này giống như sử dụng menu chuyển đến đặc biệt (phím tắt ALT+;) để chọn chỗ trống. Kiểm tra bài viết và video của tôi về cách sao chép và dán các ô hiển thị để tìm hiểu thêm.

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Cuối cùng, macro cũng có thể xóa các bộ lọc để bạn xem lại toàn bộ phạm vi dữ liệu, trừ đi các hàng bạn đã xóa.

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Đó là một macro 2 hoặc 3 bước đơn giản sẽ tiết kiệm thời gian từ việc thực hiện quá trình này theo cách thủ công.

Lưu ý quan trọng: Tôi đã thêm một bước để xóa tất cả các bộ lọc trong phạm vi hoặc bảng ở đầu macro. Điều này đảm bảo rằng không có bộ lọc nào được áp dụng cho các cột khác có thể khiến các hàng bổ sung được lọc ra. I added a step to clear all filters in the range or Table at the beginning of the macro. This ensures that there are no filters applied to other columns that could cause additional rows to be filtered out.

Một lời cảm ơn lớn đến Hoang đã chỉ ra điều này trên video YouTube!

Mã macro VBA

Mã VBA dưới đây có thể được sao chép/dán vào Trình chỉnh sửa VB. Mã cũng được bao gồm trong tệp Excel trong phần Tải xuống ở trên.

Range("a1").EntireRow.Delete
8

Bạn sẽ chỉ cần cập nhật bảng tính và tham chiếu phạm vi cho tệp cụ thể của bạn.

Tránh cảnh báo bật lên

Khi bạn chạy macro, bạn sẽ nhận được một thông báo cảnh báo bật lên cho biết rằng xóa toàn bộ hàng tờ?

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Nếu bạn muốn chạy macro mà không bị gián đoạn hộp pop-up đó, bạn chỉ cần xóa các dấu nháy đơn trước hai dòng mã bắt đầu bằng application.displayalerts.

Vì vậy, phần đó của macro bây giờ trông như thế này:

Range("a1").EntireRow.Delete
9

Thuộc tính application.displayalerts là một chuyển đổi để bật/tắt cảnh báo cảnh báo. Đặt nó thành sai sẽ tắt cảnh báo. Đây là những cảnh báo mà bạn có thể thấy từ Excel khi xóa phạm vi, xóa tờ, đóng mà không cần lưu, v.v.

Áp dụng macro cho các bảng

Nếu dữ liệu của bạn nằm trong bảng Excel thay vì chỉ một loạt các ô, bạn vẫn có thể xóa các hàng dựa trên nội dung ô bằng macro. Mã gần như giống nhau, nhưng được điều chỉnh một chút để nó áp dụng cho các bảng. Đây là mã bạn sẽ sử dụng cho một bảng.Excel Table instead of just a range of cells, you can still delete rows based on cell contents using a macro. The code is almost the same, but tweaked slightly so that it applies to Tables. Here is the code you would use for a Table.

Columns(1).Delete
0

Macro bổ sung

Tôi cũng đã bao gồm một vài macro bổ sung để giúp tùy chỉnh quy trình hơn nữa.

Thông báo cảnh báo tùy chỉnh

Bạn có thể tạo một hộp thông báo tùy chỉnh trước khi xóa hàng, thay vì cảnh báo Excel mặc định để xóa hàng. Macro bên dưới cũng cho bạn biết số lượng hàng sẽ xóa và hỏi bạn có muốn tiến hành không.custom message box before deleting rows, instead of the default Excel warning to delete rows. The macro below also tells you the number of rows it is going to delete, and asks if you want to proceed.

Columns(1).Delete
1

Đây là những gì hộp pop-up tùy chỉnh trông như thế nào:

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Pop-up này chỉ phục vụ như một séc trước khi xóa các hàng. Đó là một cách tuyệt vời để kiểm tra kỹ mọi thứ có vẻ tốt trước khi xóa. Nó cũng ngăn bạn hoặc người dùng của bạn vô tình chạy macro.

Kiểm tra video của tôi về cách thêm hộp thông báo có/không trước khi macro chạy để biết chi tiết về mã này. Đó là một phần của loạt video 4 phần của tôi trên sổ làm việc macro cá nhân.

Xóa các hàng dựa trên nhiều tiêu chí

Bạn cũng có thể xóa các hàng bằng một macro sử dụng nhiều tiêu chí. Trong video trên, tôi lọc cho các hàng có cả trường sản phẩm trống và ngày trước 1/1/2015.more than one criteria. In the video above, I filter for rows that have both a blank Product field and a date before 1/1/2015.

Columns(1).Delete
2

Điều này cho phép bạn xóa các hàng dựa trên các giá trị trong nhiều cột. Việc lọc về cơ bản sử dụng và logic giữa các cột và tất cả các điều kiện phải được đáp ứng.based on values in multiple columns. The filtering essentially uses AND logic between the columns and all conditions must be met.

Nếu bạn muốn sử dụng hoặc logic nơi đáp ứng bất kỳ điều kiện nào, bạn có thể chạy nhiều macro hoặc tạo công thức trong cột trợ giúp với logic.

Tùy thuộc vào logic, có thể dễ nhất chỉ tạo hai macro riêng biệt. Bạn có thể đặt tất cả mã vào một macro hoặc tạo một macro khác để gọi cho mỗi macro. Đây là một ví dụ về macro đó có thể trông như thế nào.

Columns(1).Delete
3

Phương pháp này cũng cho phép bạn chạy từng macro riêng lẻ.

Xóa hàng dựa trên các tiêu chí được chỉ định bởi người dùng

Daniel và Bob đã hỏi một câu hỏi tuyệt vời trong các ý kiến ​​dưới đây. Họ muốn người dùng của tệp có thể chỉ định các tiêu chí bộ lọc, thay vì có mã hóa cứng trong macro.

Chúng ta có thể sử dụng phương thức application.InputBox để yêu cầu người dùng nhập các tiêu chí.Application.InputBox method to ask the user to input the criteria.

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Phương thức InputBox tạo hộp thông báo bật lên cho phép người dùng nhập hộp văn bản. Giá trị trong hộp văn bản được chuyển trở lại macro và được lưu trữ trong một biến.

Đây là mã VBA. Tôi cũng đã thêm nó vào tệp mẫu trong phần Tải xuống ở trên.

Columns(1).Delete
4

Đổ đầy trước tên người dùng trong hộp đầu vào

Daniel cũng có một câu hỏi về việc đặt tiêu chí lọc theo tên của người dùng hiện tại. Thuộc tính application.username thực sự trả về giá trị này miễn là người dùng đã đặt nó đúng trong văn phòng/excel.

Hướng dẫn how do you delete entire row in excel if a cell contains a specific value vba? - làm thế nào để bạn xóa toàn bộ hàng trong excel nếu một ô chứa một giá trị cụ thể vba?

Chúng ta có thể sử dụng điều này làm giá trị tham số mặc định trong hộp đầu vào.

Columns(1).Delete
5

Người dùng vẫn có thể cần thay đổi tên nếu nó không khớp với giá trị trong cột bảng tính bạn đang lọc, nhưng bạn cũng có thể nhận được điều đó với người dùng để lưu chúng rất nhiều thời gian.

Chủ đề liên quan

Kiểm tra các bài viết của tôi về các chủ đề tương tự là tốt.

  • Hướng dẫn cuối cùng về các bộ lọc với macro VBA
  • Cách sao chép và dán các ô có thể nhìn thấy
  • 3 cách để xóa toàn bộ hàng trống
  • Cách tạo sổ làm việc macro cá nhân của bạn

Sự kết luận

Các macro như thế này có thể đặc biệt hữu ích nếu bạn đang tìm cách dọn dẹp dữ liệu và loại bỏ các mục mà bạn biết rằng bạn không cần có lẽ vì chúng quá già hoặc chúng chỉ hoàn thành một phần.

Có rất nhiều cách để hoàn thành nhiệm vụ này. Một cách tiếp cận phổ biến khác là lặp qua các ô và kiểm tra các giá trị của chúng riêng lẻ.

Tuy nhiên, tôi thường sử dụng phương pháp này vì nó có thể nhanh hơn rất nhiều để sử dụng các bộ lọc tích hợp trong Excel. Nó cũng cho phép chúng tôi xem trước phạm vi trước khi chúng tôi xóa nó.

Bạn sẽ sử dụng những macro này để làm gì? Vui lòng để lại một bình luận dưới đây với bất kỳ đề xuất và câu hỏi. Cảm ơn bạn! 🙂

Làm cách nào để xóa một hàng dựa trên giá trị ô trong VBA?

Sử dụng một macro để xóa các hàng dựa trên các giá trị ô, quá trình tổng thể là hai bước đơn giản: bước đầu tiên là lọc các hàng dựa trên tiêu chí lọc cho các giá trị bị xóa.Sau đó, macro xóa các ô có thể nhìn thấy trong phạm vi.filter the rows based on filter criteria for the values to be deleted. Then the macro deletes the visible cells in the range.

Làm cách nào để xóa toàn bộ hàng trong Excel dựa trên giá trị ô?

Đi trước để nhấp chuột phải vào các ô đã chọn và chọn Xóa từ menu nhấp chuột phải. Và sau đó kiểm tra toàn bộ tùy chọn hàng trong hộp thoại Xóa bật lên và nhấp vào nút OK.Bây giờ bạn sẽ thấy tất cả các ô chứa giá trị nhất định đã bị loại bỏ.right click selected cells and select the Delete from the right-clicking menu. And then check the Entire row option in the popping up Delete dialog box, and click the OK button. Now you will see all the cells containing the certain value are removed.

Làm cách nào để xóa các hàng nếu một ô chứa văn bản cụ thể trong Excel?

Bạn có thể làm điều này mà không cần lập trình:..
Trên tab Trang chủ của Ribbon, trong nhóm Sắp xếp & Bộ lọc, bật Bộ lọc ..
Từ việc thả xuống bộ lọc trong cột có liên quan, chọn Bộ lọc văn bản> chứa ....
Nhập tìm kiếm vào hộp, sau đó bấm OK ..
Bây giờ bạn chỉ nên thấy các hàng có chứa tìm kiếm ..
Xóa những hàng đó ..