Chào mọi người,
Dạo này làm việc với dữ liệu Excel nhiều, mình thường xuyên gặp phải tình trạng file có nhiều dòng trống, gây khó khăn trong việc lọc, sắp xếp và phân tích dữ liệu. Mình đã thử xóa thủ công nhưng với file dung lượng lớn thì mất rất nhiều thời gian.
Hôm nay, mình chia sẻ một đoạn code VBA đơn giản để tự động xóa các dòng trống này. Hy vọng sẽ giúp ích cho các bạn:
Sub XoaDongTrong()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = ThisWorkbook.ActiveSheet ' Hoặc chỉ định sheet cụ thể: Set ws = ThisWorkbook.Sheets("TenSheetCuaBan")
Application.ScreenUpdating = False ' Tắt cập nhật màn hình để code chạy nhanh hơn
lastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row ' Lấy dòng cuối cùng dựa trên cột A, bạn có thể thay đổi cột này
For i = lastRow To 1 Step -1 ' Duyệt từ dưới lên để tránh lỗi khi xóa dòng
If Application.WorksheetFunction.CountA(ws.Rows(i)) = 0 Then
ws.Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True ' Bật lại cập nhật màn hình
MsgBox "Đã xóa xong các dòng trống!", vbInformation
End SubGiải thích code:
- Code sẽ duyệt từng dòng từ dưới lên.
- Sử dụng hàm
CountAđể đếm số ô không trống trong dòng. Nếu kết quả bằng 0 nghĩa là dòng đó trống hoàn toàn. - Tiến hành xóa dòng trống đó.
- Lưu ý: Bạn có thể thay đổi cột dùng để xác định dòng cuối cùng (
"A") hoặc chỉ định tên sheet cụ thể nếu muốn.
Chúc các bạn áp dụng thành công!