Xóa hoặc Chèn hàng dựa trên giá trị ô

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
wave wave wave wave wave