Cách xóa hàng trống trong Excel bằng VBA, công thức và Power Query

  • Chia Sẻ Cái Này
Michael Brown

Hướng dẫn này sẽ hướng dẫn bạn một số thủ thuật đơn giản để xóa nhiều hàng trống trong Excel một cách an toàn mà không làm mất một chút thông tin nào .

Hàng trống trong Excel là vấn đề mà tất cả chúng ta đều gặp phải thỉnh thoảng, đặc biệt là khi kết hợp dữ liệu từ các nguồn khác nhau hoặc nhập thông tin từ một nơi khác. Các dòng trống có thể gây ra nhiều sự tàn phá cho trang tính của bạn ở các cấp độ khác nhau và việc xóa chúng theo cách thủ công có thể là một quá trình tốn nhiều thời gian và dễ mắc lỗi. Trong bài viết này, bạn sẽ tìm hiểu một số phương pháp đơn giản và đáng tin cậy để xóa các khoảng trống trong trang tính của mình.

    Cách KHÔNG loại bỏ các dòng trống trong Excel

    Có một số nhiều cách khác nhau để xóa các dòng trống trong Excel, nhưng đáng ngạc nhiên là nhiều tài nguyên trực tuyến lại sử dụng cách nguy hiểm nhất, đó là Tìm & Chọn > Chuyển đến Đặc biệt > Trống .

    Kỹ thuật này có gì sai? Nó chọn tất cả khoảng trống trong một phạm vi và do đó, cuối cùng bạn sẽ xóa tất cả các hàng chứa tối đa một ô trống.

    Hình ảnh bên dưới hiển thị bảng gốc ở bên trái và bảng kết quả bên phải. Và trong bảng kết quả, tất cả các hàng không đầy đủ đều biến mất, kể cả hàng 10 chỉ thiếu ngày ở cột D:

    Điểm mấu chốt: nếu bạn không muốn làm rối tung dữ liệu của mình, đừng bao giờ xóa trống hàng bằng cách chọn các ô trống. Thay vào đó, hãy sử dụng một trong những phương pháp được xem xét nhiều hơn đã được thảo luậnlàm cho mọi thứ trở nên phức tạp hơn mức cần thiết. Vì vậy, chúng tôi đã tiến thêm một bước và tạo lộ trình hai lần nhấp để xóa các hàng trống trong Excel.

    Với Ultimate Suite được thêm vào dải băng của bạn, đây là cách bạn có thể xóa tất cả các hàng trống trong trang tính:

    1. Trên tab Công cụ Ablebits , trong nhóm Chuyển đổi , nhấp vào Xóa khoảng trống > Hàng trống :
    2. Phần bổ trợ sẽ thông báo cho bạn rằng tất cả các hàng trống sẽ bị xóa khỏi trang tính đang hoạt động và yêu cầu xác nhận. Nhấp vào OK và trong giây lát, tất cả các hàng trống sẽ bị loại bỏ.

    Như minh họa trong ảnh chụp màn hình bên dưới, chúng tôi chỉ xóa các dòng hoàn toàn trống không có một ô nào có dữ liệu:

    Để tìm ra nhiều tính năng tuyệt vời hơn có trong Ultimate Suite dành cho Excel của chúng tôi, bạn có thể tải xuống phiên bản dùng thử.

    Tôi cảm ơn bạn đã đọc và hy vọng được gặp bạn trên blog của chúng tôi vào tuần tới!

    bên dưới.

    Cách xóa hàng trống trong Excel bằng VBA

    VBA Excel có thể khắc phục rất nhiều thứ, kể cả nhiều hàng trống. Điều tốt nhất về phương pháp này là nó không yêu cầu bất kỳ kỹ năng lập trình nào. Chỉ cần lấy một trong các mã bên dưới và chạy mã đó trong Excel của bạn (hướng dẫn ở đây).

    Macro 1. Xóa các dòng trống trong phạm vi đã chọn

    Mã VBA này sẽ tự động xóa tất cả các dòng trống các hàng trong phạm vi đã chọn mà không hiển thị bất kỳ thông báo hoặc hộp thoại nào cho người dùng.

    Không giống như kỹ thuật trước đó, macro sẽ xóa một dòng nếu toàn bộ hàng trống . Nó dựa vào hàm trang tính CountA để lấy số ô không trống trong mỗi dòng, sau đó xóa các hàng có số đếm bằng 0.

    Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Set SourceRange = Application. Lựa chọn Nếu không (SourceRange Is nothing ) Thì Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Đặt EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    Để cung cấp cho người dùng cơ hội chọn phạm vi mục tiêu sau khi chạy macro , hãy sử dụng mã này:

    Công khai Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range Khi Lỗi Tiếp tục Tiếp tục Đặt SourceRange = Application.InputBox( _"Chọn một phạm vi:" , "Xóa các hàng trống" , _ Application.Selection.Address, Type :=8) Nếu không (SourceRange Is nothing ) Thì Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step - 1 Đặt EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    Sau khi chạy, macro hiển thị ô nhập liệu sau, bạn chọn khoảng mục tiêu và nhấn OK:

    Trong giây lát, tất cả các dòng trống trong khoảng đã chọn sẽ bị loại bỏ và các dòng còn lại sẽ tăng lên:

    Macro 2. Xóa tất cả hàng trống trong Excel

    Để xóa tất cả hàng trống trên trang tính đang hoạt động , hãy xác định hàng cuối cùng của phạm vi đã sử dụng (tức là hàng chứa ô cuối cùng có dữ liệu), rồi đi lên xóa các dòng mà CountA trả về 0:

    Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim usedRng As Range Set usedRng = Activ eSheet.UsedRange LastRowIndex = Đã sử dụngRng.Row - 1 + Đã sử dụngRng.Rows.Count Application.ScreenUpdating = Sai Đối với RowIndex = LastRowIndex Đến 1 Bước -1 Nếu Application.CountA(Rows(RowIndex)) = 0 Thì Rows(RowIndex).Xóa Kết thúc If Next RowIndex Application.ScreenUpdating = True End Sub

    Macro 3. Xóa hàng nếu ô trống

    Với macro này, bạn có thể xóa toàn bộ hàng nếu một ô trong ô được chỉ địnhcột trống.

    Mã sau kiểm tra cột A để tìm khoảng trống. Để xóa các hàng dựa trên một cột khác, hãy thay thế "A" bằng một chữ cái thích hợp.

    Sub DeleteRowIfCellBlank() On Error Resume Next Columns( "A" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

    As a thực tế là macro sử dụng tính năng Chuyển đến Đặc biệt > Trống và bạn có thể đạt được kết quả tương tự bằng cách thực hiện các bước này theo cách thủ công.

    Lưu ý. Macro xóa các hàng trống trong toàn bộ trang tính , vì vậy hãy hết sức cẩn thận khi sử dụng macro. Để đề phòng, bạn nên sao lưu trang tính trước khi chạy macro này.

    Cách xóa các dòng trống trong Excel bằng VBA

    Để xóa các hàng trống trong Excel bằng macro, bạn có thể chèn mã VBA vào sổ làm việc của riêng bạn hoặc chạy macro từ sổ làm việc mẫu của chúng tôi.

    Thêm macro vào sổ làm việc của bạn

    Để chèn macro vào sổ làm việc của bạn, hãy thực hiện các bước sau:

    1. Mở trang tính nơi bạn muốn xóa các hàng trống.
    2. Nhấn Alt + F11 để mở Trình soạn thảo Visual Basic.
    3. Ở ngăn bên trái, nhấp chuột phải ThisWorkbook , sau đó nhấp vào Chèn > Mô-đun .
    4. Dán mã vào cửa sổ Mã.
    5. Nhấn F5 để chạy macro.

    Để biết hướng dẫn chi tiết từng bước, vui lòng xem Cách chèn và sử dụng VBA trong Excel.

    Chạy macro từ sổ làm việc mẫu của chúng tôi

    Tải xuống mẫu của chúng tôisổ làm việc có Macro để Xóa các Hàng Trống và chạy một trong các macro sau từ đó:

    DeleteBlankRows - xóa các hàng trống trong phạm vi hiện được chọn.

    RemoveBlankLines - xóa các hàng trống và chuyển lên trong phạm vi mà bạn chọn sau khi chạy macro.

    DeleteAllEmptyRows - xóa tất cả các dòng trống trên trang tính đang hoạt động.

    DeleteRowIfCellBlank - xóa một hàng nếu một ô trong một cột cụ thể trống.

    Để chạy macro trong Excel của bạn, hãy làm như sau:

    1. Mở sổ làm việc đã tải xuống và bật macro nếu được nhắc.
    2. Mở sổ làm việc của riêng bạn và điều hướng đến trang tính quan tâm.
    3. Trong trang tính của bạn, nhấn Alt + F8, chọn macro và nhấp vào Chạy .

    Công thức xóa các hàng trống trong Excel

    Trong trường hợp bạn muốn xem những gì bạn đang xóa, hãy sử dụng công thức sau để xác định các dòng trống:

    =IF(COUNTA(A2:D2)=0, "Blank", "Not blank")

    Trong đó A2 là ô đầu tiên và D2 ​​là ô được sử dụng cuối cùng của hàng dữ liệu đầu tiên.

    Nhập công thức này a trong E2 hoặc bất kỳ cột trống nào khác trong hàng 2 và kéo núm điều khiển điền để sao chép công thức xuống.

    Kết quả là bạn sẽ có "Trống" trong các hàng trống và "Không trống" trong các hàng chứa ít nhất một ô có dữ liệu:

    Logic của công thức rất rõ ràng: bạn đếm các ô không trống bằng hàm COUNTA và sử dụng câu lệnh IF để trả về "Trống" cho số 0, ngược lại là "Không trống" .

    Trongthực tế, bạn có thể làm tốt mà không cần IF:

    =COUNTA(A2:D2)=0

    Trong trường hợp này, công thức sẽ trả về TRUE cho các dòng trống và FALSE cho các dòng không trống.

    Với đã có công thức, hãy thực hiện các bước sau để xóa các dòng trống:

    1. Chọn bất kỳ ô nào trong hàng tiêu đề và nhấp vào Sắp xếp & Bộ lọc > Bộ lọc trên tab Trang chủ , trong Định dạng Thao tác này sẽ thêm các mũi tên thả xuống lọc vào tất cả các ô tiêu đề.
    2. Nhấp vào mũi tên trong tiêu đề cột công thức, bỏ chọn (Chọn tất cả), chọn Trống và nhấp vào OK :
    3. Chọn tất cả các hàng đã lọc . Đối với điều này, hãy nhấp vào ô đầu tiên của hàng được lọc đầu tiên và nhấn Ctrl + Shift + End để mở rộng lựa chọn đến ô cuối cùng của hàng được lọc cuối cùng.
    4. Nhấp chuột phải vào lựa chọn, chọn Xóa hàng khỏi menu ngữ cảnh rồi xác nhận rằng bạn thực sự muốn xóa toàn bộ hàng:
    5. Xóa bộ lọc bằng cách nhấn Ctrl + Shift + L . Hoặc nhấp vào tab Trang chủ > Sắp xếp & Bộ lọc > Bộ lọc .
    6. Xóa cột có công thức vì bạn không cần nó nữa.

    Vậy là xong! Kết quả là chúng ta có một bảng sạch sẽ không có dòng trống nhưng tất cả thông tin được giữ nguyên:

    Mẹo. Thay vì xóa các dòng trống, bạn có thể sao chép các hàng không trống sang một nơi khác. Để hoàn thành, hãy lọc các hàng "Không trống", chọn chúng và nhấn Ctrl + C để sao chép. Sau đó chuyển sangmột trang tính khác, hãy chọn ô phía trên bên trái của phạm vi đích và nhấn Ctrl + V để dán.

    Cách xóa các dòng trống trong Excel bằng Power Query

    Trong Excel 2016 và Excel 2019, có một cách khác để xóa các hàng trống - bằng cách sử dụng tính năng Power Query. Trong Excel 2010 và Excel 2013, nó có thể được tải xuống dưới dạng phần bổ trợ.

    Lưu ý quan trọng! Phương pháp này hoạt động với cảnh báo sau: Power Query chuyển đổi dữ liệu nguồn thành bảng Excel và thay đổi định dạng chẳng hạn như màu tô, đường viền và một số định dạng số. Nếu định dạng của dữ liệu gốc quan trọng đối với bạn thì bạn nên chọn một số cách khác để xóa các hàng trống trong Excel.

    1. Chọn phạm vi mà bạn muốn xóa các dòng trống.
    2. Chuyển đến tab Dữ liệu > Nhận & Chuyển đổi nhóm và nhấp vào Từ Bảng/Phạm vi . Điều này sẽ tải bảng của bạn vào Power Query Editor.
    3. Trên tab Trang chủ của Power Query Editor, nhấp vào Xóa hàng > Xóa hàng trống .
    4. Nhấp vào nút Đóng & Tải Thao tác này sẽ tải bảng kết quả vào một trang tính mới và đóng Trình soạn thảo Truy vấn.

    Sau những thao tác này, tôi nhận được bảng sau không có dòng trống, nhưng có một số thay đổi khó chịu - định dạng tiền tệ bị mất và ngày được hiển thị ở định dạng mặc định thay vì tùy chỉnh:

    Cách xóa hàng nếuô trong một cột nhất định trống

    Khi bắt đầu hướng dẫn này, chúng tôi đã cảnh báo bạn không được xóa các dòng trống bằng cách chọn các ô trống. Tuy nhiên, phương pháp này hữu ích nếu bạn muốn xóa các hàng dựa trên khoảng trống trong một cột cụ thể .

    Ví dụ: hãy xóa tất cả các hàng có một ô trong cột A trống :

    1. Trong trường hợp của chúng tôi, hãy chọn cột chính, cột A.
    2. Trên tab Trang chủ , hãy nhấp vào Tìm & Chọn > Đi tới Đặc biệt . Hoặc nhấn F5 và nhấp vào nút Đặc biệt… .
    3. Trong hộp thoại Chuyển đến Đặc biệt , chọn Trống và nhấp vào OK . Thao tác này sẽ chọn các ô trống trong phạm vi đã sử dụng ở cột A.
    4. Nhấp chuột phải vào bất kỳ ô đã chọn nào và chọn Xóa… từ menu ngữ cảnh.
    5. Trong hộp thoại Xóa , chọn Toàn bộ hàng và nhấp vào OK.

    Xong! Các hàng không có giá trị trong cột A không còn ở đó nữa:

    Có thể đạt được kết quả tương tự bằng cách lọc các khoảng trống trong cột chính.

    Cách xóa các dòng thừa bên dưới dữ liệu

    Đôi khi, các hàng trông hoàn toàn trống có thể thực sự chứa một số định dạng hoặc ký tự không in được. Để kiểm tra xem ô cuối cùng có dữ liệu có thực sự là ô được sử dụng cuối cùng trong trang tính của bạn hay không, hãy nhấn Ctrl + End . Nếu điều này đưa bạn đến một hàng trống trực quan bên dưới dữ liệu của bạn, thì về mặt Excel, hàng đó không trống. Để xóa các hàng như vậy, hãy thực hiệnsau:

    1. Nhấp vào tiêu đề của hàng trống đầu tiên bên dưới dữ liệu của bạn để chọn.
    2. Nhấn Ctrl + Shift + End . Thao tác này sẽ chọn tất cả các dòng có chứa bất kỳ thứ gì, kể cả định dạng, dấu cách và ký tự không in được.
    3. Nhấp chuột phải vào lựa chọn và chọn Xóa… > Toàn bộ hàng.

    Nếu bạn có một tập dữ liệu tương đối nhỏ, bạn có thể muốn loại bỏ tất cả các dòng trống bên dưới dữ liệu của mình, ví dụ: để làm cho cuộn dễ dàng hơn. Mặc dù không có cách nào để xóa các hàng không sử dụng trong Excel, nhưng không gì có thể ngăn cản bạn ẩn chúng. Dưới đây là cách thực hiện:

    1. Chọn hàng bên dưới hàng cuối cùng có dữ liệu bằng cách nhấp vào tiêu đề của hàng đó.
    2. Nhấn Ctrl + Shift + Mũi tên xuống để mở rộng lựa chọn đến hàng cuối cùng trên trang tính .
    3. Nhấn Ctrl + 9 để ẩn các hàng đã chọn. Hoặc bấm chuột phải vào lựa chọn rồi bấm Ẩn .

    Để hiện các hàng , nhấn Ctrl + A để chọn toàn bộ trang tính rồi nhấn Ctrl + Shift + 9 để hiển thị lại tất cả các dòng.

    Theo cách tương tự, bạn có thể ẩn các cột trống không sử dụng ở bên phải dữ liệu của mình. Để biết các bước chi tiết, vui lòng xem Ẩn các hàng không sử dụng trong Excel để chỉ vùng làm việc hiển thị.

    Cách nhanh nhất để xóa các hàng trống trong Excel

    Khi đọc các ví dụ trước, bạn đã thấy đúng chưa? cảm thấy như chúng tôi đang sử dụng búa tạ để đập vỡ hạt? Ở đây, tại Ablebits, chúng tôi không muốn

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.