Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Trong khi làm việc trong Excel, bạn có thể sử dụng một macro để xóa các hàng dựa trên các tiêu chí. Hôm nay tôi sẽ chỉ cho bạn cách bạn có thể sử dụng một macro để xóa các hàng dựa trên các tiêu chí trong Excel với hình minh họa thích hợp.Macro to delete rows based on criteria. Today I’ll show you how you can use a Macro to delete rows based on criteria in Excel with proper illustrations.


Tải xuống Sổ làm việc thực hành


3 cách sử dụng macro để xóa các hàng dựa trên các tiêu chí trong Excel

Ở đây, chúng tôi đã có một bộ dữ liệu với tên của một số học sinh và điểm số và điểm số của họ bằng tiếng Anh của một trường tên là Mẫu giáo hướng dương.Names of some students and their Marks and Grades in English of a school called Sunflower Kindergarten.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?


1. Sử dụng macro để xóa các hàng dựa trên lớn hơn hoặc bằng các tiêu chí trong Excelin Excel

Bạn có thể sử dụng một macro để xóa các hàng trong Excel dựa trên các tiêu chí lớn hơn hoặc bằng giá trị.use a macro to delete rows in Excel based on criteria greater than or equal to a value.

Hãy để tạo ra một macro sẽ xóa tất cả các hàng với các sinh viên có ít hơn 40.

Bước 1:

Nhấn Alt+F11 trên bàn phím của bạn. Cửa sổ VBA sẽ mở. Press ALT+F11 on your keyboard. The VBA window will open.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Bước 2:

Chuyển đến tab Chèn trong cửa sổ VBA. & NBSP; Go to the Insert tab in the VBA window. 

Từ các tùy chọn có sẵn, chọn Mô -đun. From the options available, select Module.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Bước 3:

Một cửa sổ mô -đun mới có tên là Mô -đun 1 1 sẽ mở. & NBSP; A new module window called “Module 1” will open. 

Chèn mã VBA sau vào mô -đun. Insert the following VBA code in the module.

Code:

Sub Delete_Rows()
For i = 1 To Selection.Rows.Count
    For j = 1 To Selection.Rows.Count
        If Selection.Cells(j, 2) < 40 Then
            Rows(j + 3).EntireRow.Delete
        End If
    Next j
Next i
End Sub

Notes:

  • Mã này tạo ra một macro có tên Delete_Rows.Macro called Delete_Rows.
  • Trong dòng thứ 4 của mã, chúng tôi đã sử dụng các ô (J, 2) vì 2 là số cột của bộ dữ liệu của tôi chứa các tiêu chí (điểm bằng tiếng Anh).4th line of the code, we have used Cells(j,2) because 2 is the column number of my data set which holds the criteria (Marks in English).
  • <40 is my given condition (Who got marks less than 40).
  • Trong dòng thứ 5, chúng tôi đã sử dụng các hàng (J+3) vì 3 là số lượng hàng trong bảng tính của tôi ngay trước hàng đầu tiên của tập dữ liệu (với các tiêu đề cột).5th line, we have used Rows(j+3) because 3 is the number of rows in my worksheet just before the first row of the data set (with the Column Headers).
  • Bạn thay đổi các giá trị này theo bộ dữ liệu và điều kiện của bạn.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Bước 4:

Lưu sổ làm việc dưới dạng sổ làm việc hỗ trợ macro Excel. Save the workbook as Excel Macro-Enabled Workbook.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Bước 5:

Quay trở lại bảng tính của bạn Chọn bộ dữ liệu (không có tiêu đề cột). Return to your worksheet select the data set (Without the Column Headers).

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Bước 6:

Nhấn Alt+F8 trên bàn phím của bạn.ALT+F8 on your keyboard.

Một hộp thoại có tên Macro sẽ mở. Chọn Delete_Rows và nhấp vào chạy.Macro will open. Select Delete_Rows and click on Run.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Bước 7:

Bạn sẽ tìm thấy các hàng có dấu tự động nhỏ hơn 40. You will find the rows having marks less than 40 deleted automatically.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Notes:

  • Bạn cũng có thể sử dụng mã này để so sánh các giá trị văn bản.
  • Ví dụ: để loại bỏ các học sinh có A+ ở lớp, hãy thay thế dòng thứ 4 bằng if select.cells (j, 3) = Hồi A+, sau đóA+ in grades, replace the 4th line with If Selection.Cells(j, 3) = “A+” Then
  • Ở đây chúng tôi sẽ sử dụng các ô (j, 3) vì tiêu chí hiện nằm trong cột thứ 3 (lớp).Cells(j,3) because the criterion is now in the 3rd column (Grades).

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Và đầu ra sẽ là:

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Đọc thêm: Macro VBA để xóa hàng nếu ô chứa giá trị trong excel VBA Macro to Delete Row if Cell Contains Value in Excel


2. Nhúng macro VBA để xóa các hàng tùy thuộc vào tiêu chí bắt đầu với một ký tự cụ thể

Bạn có thể sử dụng macro để xóa các hàng trong Excel có giá trị văn bản bắt đầu bằng một ký tự cụ thể.

Ví dụ, hãy để Lôi cố gắng xóa các hàng có tên sinh viên bắt đầu bằng cách A A.“A”.

Các bước đều tương tự như các bước của phương pháp 1.

Chỉ trong Bước 3, hãy thay thế mã VBA trước đó bằng mã này:Step 3, replace the previous VBA code with this code:

Code:

Sub Delete_Rows_Starting_with_A()
For i = 1 To Selection.Rows.Count
    For j = 1 To Selection.Rows.Count
        If Left(Selection.Cells(j, 1), 1) = "A" Then
            Rows(j + 3).EntireRow.Delete
        End If
    Next j
Next i
End Sub

Notes:

  • Mã này tạo ra một macro có tên DELETE_ROWS_STARTING_WITH_A.Delete_Rows_Starting_with_A.
  • Trong dòng thứ 4 của mã, chúng tôi đã sử dụng các ô (J, 1), vì tiêu chí nằm trong cột thứ nhất (tên sinh viên) của tập dữ liệu.4th line of the code, we have used Cells(j,1), because the criterion is in the 1st column (Student Name) of the data set.
  • Nếu nó nằm trong cột thứ hai, hãy sử dụng các ô (J, 2). Tương tự đối với cột thứ 3, sử dụng các ô (J, 3), v.v.Cells (j,2). Similarly for the 3rd column, use Cells(j,3), and so on.
  • Và để xóa các hàng với các tên bắt đầu bằng bất cứ thứ gì khác ngoài một A, hãy thay đổi nó trong dòng thứ 4.“A”, change it in the 4th line.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Cuối cùng, hãy chạy macro này trên bộ dữ liệu của bạn sau các bước 5, 6 và 7 của phương pháp 1.Macro on your data set following steps 5, 6, and 7 of method 1.

Bạn sẽ tìm thấy tất cả các hàng có tên sinh viên bắt đầu bằng cách tự động sẽ bị xóa.“A” will be deleted automatically.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?


3. Chèn một macro để xóa các hàng dựa trên một văn bản cụ thể trong Excelin Excel

Bạn cũng có thể sử dụng các hàng xóa macroto có giá trị văn bản cụ thể.use a Macroto delete rows having a specific text value.

Nhìn vào bộ dữ liệu mới này. Chúng tôi có tên của một số cuốn sách và giá của một cửa hàng sách tên là Martin Bookstore.Names of some books and the Prices of a bookshop called Martin Bookstore.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Hãy cùng cố gắng xóa tất cả các hàng có từ Lịch sử Lịch sử trong tên sách.“History” in the book name.

Các bước đều tương tự như các bước của phương pháp 1.

Chỉ trong Bước 3, hãy thay thế mã VBA trước đó bằng mã này:Step 3, replace the previous VBA code with this code:

Code:

Sub Delete_Rows_with_History()
Dim Count As Integer
For i = 1 To Selection.Rows.Count
    For j = 1 To Selection.Rows.Count
        Count = 0
        Words = Split(Selection.Cells(j, 1))
        For Each k In Words
            Lower=LCase(k)
            If k = "history" Then
                Count = Count + 1
            End If
        Next k
        If Count > 0 Then
            Rows(j + 3).EntireRow.Delete
        End If
    Next j
Next i
End Sub

Notes:

  • Mã này tạo ra một macro có tên DELETE_ROWS_STARTING_WITH_A.Delete_Rows_with_History.
  • Trong dòng thứ 4 của mã, chúng tôi đã sử dụng các ô (J, 1), vì tiêu chí nằm trong cột thứ nhất (tên sinh viên) của tập dữ liệu.6th line of the code, we have used Cells(j,1), because the criterion is in the 1st column (Name of the Book) of the data set.
  • Nếu nó nằm trong cột thứ hai, hãy sử dụng các ô (J, 2). Tương tự đối với cột thứ 3, sử dụng các ô (J, 3), v.v.Cells (j,2). Similarly for the 3rd column, use Cells(j,3), and so on.
  • Và để xóa các hàng với các tên bắt đầu bằng bất cứ thứ gì khác ngoài một A, hãy thay đổi nó trong dòng thứ 4.“history”, replace it in the 6th line.
  • Cuối cùng, hãy chạy macro này trên bộ dữ liệu của bạn sau các bước 5, 6 và 7 của phương pháp 1.“Book”, always use “book” in the code.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?

Cuối cùng, hãy chạy macro này trên bộ dữ liệu của bạn sau các bước 5, 6 và 7 của phương pháp 1.Macro on your data set following steps 5, 6, and 7 of method 1.

Bạn sẽ tìm thấy tất cả các hàng có tên sinh viên bắt đầu bằng cách tự động sẽ bị xóa.“History” or “history”  in the book names will be deleted automatically.

Hướng dẫn how do i delete a row based on criteria in excel vba? - làm cách nào để xóa một hàng dựa trên tiêu chí trong excel vba?


3. Chèn một macro để xóa các hàng dựa trên một văn bản cụ thể trong Excel

Bạn cũng có thể sử dụng các hàng xóa macroto có giá trị văn bản cụ thể.Macro. Do you have any questions? Feel free to ask us.


  • Nhìn vào bộ dữ liệu mới này. Chúng tôi có tên của một số cuốn sách và giá của một cửa hàng sách tên là Martin Bookstore.
  • Hãy cùng cố gắng xóa tất cả các hàng có từ Lịch sử Lịch sử trong tên sách.
  • Xóa hàng trong Excel: 7 Phương pháp
  • Cách xóa các hàng đã chọn trong Excel (8 cách tiếp cận)
  • Cách xóa nhiều hàng trong Excel với điều kiện (3 cách)
  • Cách sử dụng VBA để xóa các hàng trống trong Excel