Hướng dẫn này sẽ trình bày các cách khác nhau để xóa 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ộ một hàng trong VBA, hãy sử dụng dòng mã này:
1 | Hàng (1) .Xóa |
Lưu ý rằng chúng tôi sử dụng Xóa bỏ phương pháp xóa một hàng.
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 với Toàn bộ hàng:
1 | Phạm vi ("a1"). EntireRow.Delete |
Tương tự như vậy để xóa toàn bộ cột, hãy sử dụng các dòng mã sau:
1 | Các cột (1) .Xóa |
1 | Phạm vi ("a1"). EntireColumn.Delete |
Xóa nhiều hàng hoặc cột
Sử dụng cùng một logic, bạn cũng có thể xóa nhiều hàng cùng một lúc:
1 | Hàng ("1: 3"). Xóa |
hoặc các cột:
1 | Các cột ("A: C"). Xóa |
Lưu ý ở đây, chúng tôi tham chiếu số / chữ cái hàng và cột cụ thể được bao quanh bởi dấu ngoặc kép.
Tất nhiên, bạn cũng có thể tham khảo EntireRow của một dải ô:
1 | Phạm vi ("a1: a10"). EntireRow.Delete |
Lưu ý: Các ví dụ dưới đây chỉ minh họa việc xóa các hàng, tuy nhiên như bạn có thể thấy ở trên, cú pháp gần như giống hệt nhau để xóa các cột.
Xóa hàng trống / hàng trống
Ví dụ này sẽ xóa một hàng nếu toàn bộ hàng trống:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Làm mờ ô dưới dạng phạm viĐối với mỗi ô trong phạm vi ("b2: b20")Nếu Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Thìcell.EntireRow.DeleteKết thúc nếuÔ tiếp theoKết thúc Sub |
Nó sử dụng hàm trang tính Excel: COUNTA.
Xóa hàng nếu ô trống
Thao tác này sẽ xóa một hàng nếu cột cụ thể trong hàng đó trống (trong trường hợp này là cột B):
1 | Phạm vi ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
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 một giá trị ô nhất định trong hàng đó cho biết “xóa”.
1234567891011 | Sub DeleteRowswithSpecificValue ()Làm mờ ô dưới dạng phạm viĐối với mỗi ô trong phạm vi ("b2: b20")If cell.Value = "delete" Sau đócell.EntireRow.DeleteKết thúc nếuÔ tiếp theoKết thúc Sub |
Thêm Ví dụ về Xóa Hàng và Cột
Xóa các hàng trùng lặp
Mã này sẽ xóa tất cả các hàng trùng lặp trong một phạm vi:
1 | Phạm vi ("b2: c100"). Các cột RemoveDuplicates: = 2 |
Lưu ý rằng chúng tôi đặt Cột: = 2. Điều này yêu cầu VBA kiểm tra cả hai cột dữ liệu đầu tiên khi xem xét các hàng có trùng lặp hay không. Bản sao chỉ được tìm thấy khi cả hai cột có giá trị trùng lặp.
Nếu chúng tôi đã đặt giá trị này thành 1, thì chỉ hàng đầu tiên mới được kiểm tra các giá trị trùng lặp.
Xóa hàng trong bảng
Mã này sẽ xóa hàng thứ hai trong Bảng bằng cách tham chiếu đến ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Xóa hàng đã lọc
Để chỉ xóa các hàng hiển thị sau khi lọc:
1 | Range ("b3: b20"). SpecialCells (xlCellTypeVosystem) .EntireRow.Delete |
Xóa hàng trong phạm vi
Mã này sẽ xóa tất cả các hàng trong phạm vi:
1 | Phạm vi ("a1: a10"). EntireRow.Delete |
Xóa hàng đã chọn
Mã này sẽ xóa tất cả các hàng đã chọn:
1 | Selection.EntireRow.Delete |
Xóa hàng cuối cùng
Thao tác này sẽ xóa hàng được sử dụng cuối cùng trong cột B:
1 | Các ô (Rows.Count, 2) .End (xlUp) .EntireRow.Delete |
Bằng cách thay đổi 2 thành 1, bạn có thể xóa hàng được sử dụng cuối cùng trong cột A, v.v.:
1 | Các ô (Rows.Count, 1) .End (xlUp) .EntireRow.Delete |
Xóa các cột theo số
Để xóa một cột theo số của nó, hãy sử dụng mã như sau:
1 | Các cột (2) .Xóa |