Hướng dẫn này sẽ trình bày cách xóa hoặc chèn các hàng dựa trên giá trị ô.
Xóa hàng dựa trên giá trị ô
Thao tác này sẽ lặp qua một phạm vi và xóa các hàng nếu cột A cho biết “xóa”.
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Khai báo các biếnDim LastRow As Long, FirstRow As LongDim Row As LongVới ActiveSheet'Xác định hàng đầu tiên và cuối cùngFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Vòng qua các hàng (Từ dưới lên trên)For Row = LastRow To FirstRow Bước -1Nếu .Range ("A" & Hàng) .Value = "xóa" Thì.Range ("A" & Row) .EntireRow.DeleteKết thúc nếuHàng tiếp theoKết thúc vớiKết thúc Sub |
Chúng ta phải bắt đầu vòng lặp với hàng dưới cùng vì xóa một hàng sẽ chuyển dữ liệu, bỏ qua các hàng nếu bạn lặp từ trên xuống dưới.
Ngoài ra, hãy lưu ý rằng thay vì nhập thủ công vào hàng cuối cùng, chúng tôi tính toán hàng được sử dụng cuối cùng.
Xóa hàng - Dựa trên bộ lọc
Trong ví dụ trước, chúng ta đã lặp qua các hàng, xóa từng hàng đáp ứng tiêu chí. Ngoài ra, chúng ta có thể sử dụng Bộ lọc tự động của Excel để lọc các hàng dựa trên một số tiêu chí và sau đó xóa các hàng hiển thị:
12345678910111213141516171819202122232425 | Sub FilterAndDeleteRows ()'Khai báo biến wsDim ws As WorksheetĐặt ws = ActiveSheet'Đặt lại các bộ lọc hiện cóKhi có lỗi Tiếp tục tiếp theows.ShowAllDataLỗi GoTo 0'Áp dụng bộ lọcws.Range ("a1: d100"). Trường AutoFilter: = 1, Criteria1: = "delete"'Xóa hàngApplication.DisplayAlerts = Falsews.Range ("a1: d100"). SpecialCells (xlCellTypeVosystem) .DeleteApplication.DisplayAlerts = True'LÀm sạch bộ lọcKhi có lỗi Tiếp tục tiếp theows.ShowAllDataLỗi GoTo 0Kết thúc Sub |
Xóa hàng dựa trên tiêu chí ô
Thao tác này sẽ lặp qua một phạm vi, xóa các hàng nếu ô trong cột A đáp ứng các tiêu chí nhất định (<0):
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Khai báo các biếnDim LastRow As Long, FirstRow As LongDim Row As LongVới ActiveSheet'Xác định hàng đầu tiên và hàng cuối cùngFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Vòng qua các hàng (Từ dưới lên trên)For Row = LastRow To FirstRow Bước -1Nếu .Range ("A" & Hàng) .Value <0 Thì.Range ("A" & Row) .EntireRow.DeleteKết thúc nếuHàng tiếp theoKết thúc vớiKết thúc Sub |
Lập trình VBA | Code Generator làm việc cho bạn!
Xóa hàng nếu ô trống
Thao tác này sẽ lặp qua một phạm vi, xóa một hàng nếu một ô trong cột A trống:
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Khai báo các biếnDim LastRow As Long, FirstRow As LongDim Row As LongVới ActiveSheet'Xác định hàng đầu tiên và hàng cuối cùngFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Vòng qua các hàng (Từ dưới lên trên)For Row = LastRow To FirstRow Bước -1Nếu .Range ("A" & Hàng) .Value = "" Thì.Range ("A" & Row) .EntireRow.DeleteKết thúc nếuHàng tiếp theoKết thúc vớiKết thúc Sub |
Xóa hàng trống
Ngoài ra, nếu bạn muốn xóa một hàng nếu toàn bộ hàng trống (Nhấp vào liên kết cho một phương pháp hơi khác), bạn có thể sử dụng mã này:
1234567891011121314151617181920 | Sub DeleteBlankRows ()'Khai báo các biếnDim LastRow As Long, FirstRow As LongDim Row As LongVới ActiveSheet'Xác định hàng đầu tiên và hàng cuối cùngFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Vòng qua các hàng (Từ dưới lên trên)For Row = LastRow To FirstRow Bước -1Nếu WorksheetFunction.CountA (.Rows (Row)) = 0 Thì.Rows (Hàng) .EntireRow.DeleteKết thúc nếuHàng tiếp theoKết thúc vớiKết thúc Sub |
Xóa hàng nếu ô chứa giá trị
Thao tác này sẽ lặp qua một phạm vi, xóa một hàng nếu ô trong cột A không trống:
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Khai báo các biếnDim LastRow As Long, FirstRow As LongDim Row As LongVới ActiveSheet'Xác định hàng đầu tiên và hàng cuối cùngFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Vòng qua các hàng (Từ dưới lên trên)For Row = LastRow To FirstRow Bước -1If .Range ("A" & Row) .Value "" thì.Range ("A" & Row) .EntireRow.DeleteKết thúc nếuHàng tiếp theoKết thúc vớiKết thúc Sub |
Bạn mệt mỏi với việc tìm kiếm ví dụ về mã VBA? Hãy thử AutoMacro!
Chèn hàng dựa trên giá trị ô
Thao tác này sẽ lặp qua một dải ô, chèn các hàng nếu một ô nhất định trong hàng đó cho biết “chèn”:
1234567891011121314151617181920 | Sub InsertRowsBasedonCellValue ()'Khai báo các biếnDim LastRow As Long, FirstRow As LongDim Row As LongVới ActiveSheet'Xác định hàng đầu tiên và cuối cùngFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Vòng qua các hàng (Từ dưới lên trên)For Row = LastRow To FirstRow Bước -1If .Range ("A" & Row) .Value = "insert" Then.Range ("A" & Row) .EntireRow.InsertKết thúc nếuHàng tiếp theoKết thúc vớiKết thúc Sub |