Cách xóa các hàng trống trong Excel với Macro

Bến Hà Trương
20 Nov 2020

Có nhiều cách để xóa các hàng trống trong trang tính Excel, nhưng cách nhanh chóng nhất là sử dụng macro trong Excel. Bất kể lý do xuất hiện các hàng trống trong Excel là gì, tốt nhất là bạn nên xóa chúng. Hầu hết các tính năng của Excel diễn giải một hàng trống là phần cuối của một dải dữ liệu; do đó, các tính năng đó sẽ không hoạt động như mong đợi nếu bạn để các hàng trống trong tập dữ liệu của mình.

Trong bài viết này, chúng ta sẽ khám phá cách tạo một macro giúp bạn nhanh chóng xóa các hàng trống trong Excel.

Mã VBA xóa hàng trống trong Excel

Đầu tiên, chúng ta hãy xem mã hiển thị bên dưới. Đừng quá lo lắng vì đoạn code này không phức tạp như vẻ bề ngoài. Logic rất đơn giản. Sau khi khai báo và thiết lập một vài biến, vòng lặp For sẽ kiểm tra mọi hàng trong phạm vi đã chọn để tìm các hàng trống. Khi nó tìm thấy bất kỳ hàng trống nào, code này sẽ xóa hàng và dịch chuyển các hàng phía dưới lên.

Xem thêm khóa học Tuyệt đỉnh VBA - Viết code trong tầm tay giúp bạn tăng ít nhất 200% năng suất làm việc. Hơn thế nữa, khi tận dụng lợi thế của lập trình VBA để tự động hóa thao tác và nghiệp vụ trên Excel, bạn có thể tiết kiệm hàng giờ mệt mỏi vì làm báo cáo, quản lý dữ liệu.

Mã VBA xóa hàng trống trong Excel

Sub DeleteBlankRows()
'Delete blank rows in a selected range.
'Choose appropriate delete statement in For loop.
'Entire Row deletes entire rows.
'Delete deletes partial rows.
Dim rng As Range
Dim selectedRng As Range
Dim iRowCount As Integer
Dim iForCount As Integer
'Error handling; for good measure.
On Error Resume Next
Set selectedRng = Application.Selection
'Type:=8 argument specifies a Range object; input value must be a range.
Set selectedRng = Application.InputBox("Range", , selectedRng.Address, Type:=8)
Application.ScreenUpdating = False
'Count of rows in selected range used as For stop value.
'WorksheetFunction.CountA counts the number of cells that are NOT empty.
iRowCount = selectedRng.Rows.Count
For iForCount = iRowCount To 1 Step -1
    If Application.WorksheetFunction.CountA(selectedRng.Rows(iForCount)) = 0 Then
        'Delete entire row.
        selectedRng.Rows(iForCount).EntireRow.Delete
        'Delete partial row.
        'selectedRnd.Rows(iForCount).Delete
    End If
Next
    Application.ScreenUpdating = True
End Sub

Một số lệnh có thể cần giải thích một chút.

  • Đầu tiên là hàm InputBox:
Set selectedRng = Application.InputBox("Range", , selectedRng.Address, Type:=8)
Có thể bạn đã quen thuộc với hàm InputBox như một công cụ để thu thập dữ liệu từ người dùng. Trong trường hợp này, người dùng phải chỉ định một phạm vi vì đối số, Type: = 8, chỉ định rằng đầu vào là một đối tượng Range.
  • Câu lệnh iRowCount = selectRng.Rows.Count trả về số hàng trong phạm vi đầu vào (từ hộp nhập).
  • Vòng lặp For sử dụng biến này (trừ 1) làm giá trị dừng của nó. Câu lệnh đầu tiên trong vòng lặp For là câu lệnh If.
  • Hàm CountA đếm số ô trong hàng hiện tại không trống. Khi số ô không trống là 0, câu lệnh tiếp theo sẽ xóa toàn bộ hàng.

Đoạn code để xóa dòng trống trong excel này bao gồm hai câu lệnh xóa: một câu lệnh xóa toàn bộ hàng và một câu lệnh xóa một phần các hàng trong phạm vi đã chọn.

Hoặc để đơn giản hơn, bạn có thể tạo hai macro: một macro xóa toàn bộ hàng và một macro chỉ xóa một phần hàng.

Bây giờ bạn đã biết cách hoạt động của macro, hãy  thêm nó vào sổ làm việc của mình.

  1. Đầu tiên, mở VBA bằng cách nhấn Alt + F11.
  2. Trong Project Explorer, truy cập module ThisWorkbook và nhập đoạn code bên trên vào.
  3. Tiếp theo, quay lại Excel và lưu nó dưới dạng tệp hỗ trợ macro như sau:
    • Bấm vào tab File.
    • Chọn Save as từ ngăn bên trái.
    • Từ menu thả xuống File Type  (bên dưới điều khiển Name), chọn Sổ làm việc Hỗ trợ Macro của Excel (* .xlsm).
    • Nhấp vào để Save.

Như vậy, bạn đã thêm macro thành công vào trang tính của mình.

Sử dụng macro để xóa các hàng trống trong Excel

Để chứng minh làm thế nào để sử dụng macro, chúng tôi sẽ xóa các hàng trống trong bảng đơn giản thể hiện trong Hình bên dưới . Có rất nhiều cách để chạy macro, nhưng chúng tôi sẽ sử dụng tab  Developer cho ví dụ này. Nếu  bạn không thể truy cập được tap này, hãy nhấp vào menu thả xuống QAT, chọn More Commands, chọn Customize Ribbon trong ngăn bên trái, chọn  Developer  trong danh sách Main Tabs và nhấp vào OK.

Cách xóa các hàng trống trong Excel với Macro
Chạy macro để xóa hai hàng trống trong trang tính đơn giản này qua tab Developer với các bước đơn giản như sau:
  1. Nhấp vào tab Developer.
  2. Trong nhóm Code, bấm Macro.
  3. Trong hộp thoại kết quả, chọn ThisWorkbook.DeleteBlankRows và nhấp vào Run.
  4. Bạn sẽ thấy các hộp nhắc hiển thị như hình bên dưới. Nếu bạn chọn phạm vi trước khi chạy macro, hộp nhập sẽ mặc định thành phạm vi đã chọn. Tuy nhiên, bạn có thể đánh dấu phạm vi hoặc nhập phạm vi theo cách thủ công cũng như sử dụng hộp nhập liệu. Bạn cũng có thể nhập tên dải ô hoặc tên đối tượng Table.
  5. Nhấp vào OK và bạn đã hoàn tất. Các hàng trống đã biến mất.
Cách xóa các hàng trống trong Excel với Macro
Và các hàng trống trong bảng đã được xóa
Cách xóa các hàng trống trong Excel với Macro

Một số lưu ý khi chạy macro:
  • Đầu tiên, bạn không thể hoàn tác việc xóa. Lời khuyên tốt nhất của tôi là luôn lưu bất kỳ sổ làm việc nào trước khi xóa dữ liệu. Bằng cách đó, nếu bạn mắc lỗi, bạn vẫn ổn.
  • Thứ hai, nếu bạn đang làm việc với một tập dữ liệu lớn, việc chọn phạm vi có thể khó khăn. May mắn thay, macro có thể xử lý tên phạm vi hoặc tên đối tượng Bảng.
  • Bạn có thể nhận thấy rằng còn một số ô trống trong bản ghi. Macro sẽ không xóa các bản các ô trống này, đoạn mã trên chỉ xóa các hàng trong phạm vi được chọn.

Nếu bạn thường xuyên sử dụng macro, hãy cân nhắc thêm nó vào QAT của bạn

CHỈ 7 GIỜ HỌC BÀI BẢN, TIẾP KIỆM HÀNG CHỤC NGHÌN GIỜ TRA CỨU

Cách thêm macro vào thanh công cụ QAT

Bạn có thể dễ dàng để thêm một hoặc hai macro vào Office QAT để nhanh chóng thực hiện các tác vụ thường xuyên lập lại. Các bước thực hiện như sau:

  • Nhấp vào menu thả xuống QAT và chọn More Commands.
  • Từ menu thả xuống Commands From, chọn Macro.
  • Ứng dụng của bạn sẽ hiển thị các macro đang có trong danh sách kết quả. Chọn macro bạn muốn thêm vào QAT và nhấp vào nút Add
  • Nhấn OK để thêm macro vào QAT.

Sau đó, bạn có thể tùy chỉnh macro trên thanh Office QAT của mình để hiển thị đẹp mắt hơn. Bạn có thể thay đổi biểu tượng macro với các bước như sau:

Cách thêm macro Office vào thanh công cụ QAT

  1. Lặp lại các bước 1 và 2 ở trên để truy cập các tùy chọn giao diện QAT.
  2. Chọn macro trong danh sách Customize Quick Access Toolbar.
  3. Nhấp vào Edit.
  4. Trong hộp thoại hiện ra, chọn một biểu tượng mới. Bạn cũng có thể thay đổi tên.
  5. Nhấn OK hai lần để xem biểu tượng mới trong QAT.

Hy vọng bài viết này đã cung cấp cho bạn những thông tin hữu ích. Bên cạnh đó, để không bỏ lỡ những mẹo và thủ thuật tin học văn phòng thú vị khác, hày tham gia Gitiho ngay hôm nay.

@ 2020 - Bản quyền của Công ty TNHH Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội