Bỏ qua nội dung chính

Làm cách nào để lọc danh sách và xóa các hàng ẩn hoặc hiện còn lại trong Excel?

Tác giả: Siluvia Sửa đổi lần cuối: 2020-04-28

Đối với danh sách đã lọc, bạn có thể cần xóa các hàng ẩn hoặc hiện để chỉ giữ lại dữ liệu hữu ích. Trong bài viết này, chúng tôi sẽ chỉ cho bạn các phương pháp xóa các hàng ẩn hoặc hiện còn lại của danh sách đã lọc trong Excel.

Xóa các hàng ẩn trong trang tính đang hoạt động với mã VBA
Xóa các hàng hiển thị của danh sách đã lọc bằng cách chọn tất cả các ô hiển thị
Dễ dàng xóa các hàng ẩn hoặc hiện của danh sách đã lọc với Kutools cho Excel


Xóa các hàng ẩn trong trang tính đang hoạt động với mã VBA

Phần này sẽ hiển thị cho bạn mã VBA để xóa các hàng ẩn trong trang tính đang hoạt động. Hãy làm như sau.

1. Kích hoạt trang tính bạn cần để xóa các hàng ẩn, nhấn Khác + F11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Trong cửa sổ Microsoft Visual Basic for Applications, bấm Chèn > Mô-đun. Và sau đó sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun.

Mã VBA: Xóa các hàng ẩn

Sub RemoveHiddenRows()
	Dim xRow As Range
	Dim xRg As Range
	Dim xRows As Range
	On Error Resume Next
	Set xRows = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
	If xRows Is Nothing Then Exit Sub
		For Each xRow In xRows.Columns(1).Cells
			If xRow.EntireRow.Hidden Then
				If xRg Is Nothing Then
					Set xRg = xRow
				Else
					Set xRg = Union(xRg, xRow)
				End If
			End If
		Next
		If Not xRg Is Nothing Then
			MsgBox xRg.Count & " hidden rows have been deleted", , "Kutools for Excel"
			xRg.EntireRow.Delete
		Else
			MsgBox "No hidden rows found", , "Kutools for Excel"
		End If
	End Sub

3. Nhấn nút F5 phím để chạy mã. Nếu có các hàng ẩn trong trang tính hiện hoạt, sau khi chạy mã, một hộp thoại sẽ bật lên để cho bạn biết có bao nhiêu hàng ẩn đã bị xóa. Nhấn vào OK để xóa các hàng ẩn. Xem ảnh chụp màn hình:

doc xóa phần còn lại 1

Nếu không, bạn sẽ nhận được hộp thoại sau sau khi chạy mã.

doc xóa phần còn lại 1

Chú thích: mã VBA trên không chỉ có thể xóa các hàng ẩn của danh sách đã lọc mà còn xóa các hàng ẩn mà bạn đã ẩn theo cách thủ công trước đó.


Xóa các hàng hiển thị của danh sách đã lọc với tính năng chọn tất cả các ô hiển thị

Để xóa các hàng hiển thị của danh sách đã lọc, vui lòng thực hiện như sau.

1. Chọn tất cả các hàng đã lọc ra và nhấn F5 chìa khóa để mở Go To hộp thoại, sau đó nhấp vào Reduct ® cái nút. Xem ảnh chụp màn hình:

doc xóa phần còn lại 1

2. bên trong Đi đặc biệt hộp thoại, kiểm tra Chỉ các ô hiển thị rồi bấm vào OK .

doc xóa phần còn lại 1

3. Bây giờ tất cả các hàng hiển thị đã được chọn, nhấp chuột phải vào lựa chọn, sau đó nhấp vào Xóa Hàng.

doc xóa phần còn lại 1

Cho đến bây giờ, tất cả các hàng hiển thị đều bị xóa khỏi danh sách đã lọc.


Dễ dàng xóa các hàng ẩn hoặc hiện của danh sách đã lọc với Kutools cho Excel

Hai phương pháp trên có thể không phải là giải pháp mong muốn của nhiều người dùng Excel, ở đây chúng tôi xin giới thiệu với bạn một công cụ tiện dụng. Với Xóa hàng & cột ẩn (hiển thị) tiện ích của Kutools cho Excel, bạn có thể dễ dàng xóa các hàng ẩn trong phạm vi / trang tính đã chọn, trang tính hiện hoạt hoặc tất cả các trang tính trong Excel.

Trước khi áp dụng Kutools cho Excel, Xin vui lòng tải xuống và cài đặt nó trước tiên.

1. Nếu bạn chỉ muốn xóa các hàng ẩn hoặc hiện của danh sách đã lọc, vui lòng chọn phạm vi đã lọc theo cách thủ công, sau đó nhấp vào Kutools > Xóa bỏ > Xóa hàng & cột ẩn (hiển thị). Xem ảnh chụp màn hình:

2. bên trong Xóa hàng & cột ẩn (hiển thị) hộp thoại, giữ Trong phạm vi đã chọn được lựa chọn trong Nhìn vào danh sách thả xuống (bạn có thể chọn các tùy chọn khác khi cần), hãy kiểm tra Hàng tùy chọn trong Xóa loại và trong Loại chi tiết phần, kiểm tra Hàng có thể nhìn thấy or Hàng ẩn tùy chọn như bạn cần. Và cuối cùng nhấp vào OK .

3. Sau đó, một hộp thoại bật lên cho bạn biết có bao nhiêu hàng đã bị xóa, vui lòng nhấp vào OK .

  Nếu bạn muốn dùng thử miễn phí (30 ngày) tiện ích này, vui lòng nhấp để tải xuống, và sau đó đi đến áp dụng hoạt động theo các bước trên.


Xóa các hàng ẩn hoặc hiển thị của danh sách đã lọc bằng Kutools cho Excel

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
Comments (7)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi this VBA code is awesome useful.
This comment was minimized by the moderator on the site
Thanks for the info. This has been instructive. Please is there a way to filter and delete for specific numbers in rows of up to 1 million? Can the code above be modified to do so?
This comment was minimized by the moderator on the site
Hi,
Sorry did not test the code in such huge row data. Maybe you can make a copy of your data and test if the code can work.
This comment was minimized by the moderator on the site
VBA code to Delete hidden rows worked perfectly with no fiddling. THANK YOU!!
This comment was minimized by the moderator on the site
Feedback re: the macro for hidden row deletions - this takes too long to run on 900k rows to be useful. 2+ hours on an OC'd Threadripper 1950X and still running (had to end task). Any way to optimize it to use multiple cores or is this a VBA limitation?
This comment was minimized by the moderator on the site
Hi,
The code has been optimized. Please have a try. Thank you for your comment.

Sub RemoveHiddenRows()
Dim xFlag As Boolean
Dim xStr, xTemp As String
Dim xDiv, xMod As Long
Dim I, xCount, xRows As Long
Dim xRg, xCell, xDRg As Range
Dim xArr() As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
Set xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
If xRg Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
Set xRg = xRg(1)
xFlag = True
xTemp = ""
xCount = 0
For I = 1 To xRows
Set xCell = xRg.Offset(I - 1, 0)
Do While xFlag
If xCell.EntireRow.Hidden Then
xStr = xCell.Address
xFlag = False
Else
GoTo Ctn
End If
Loop
If xCell.EntireRow.Hidden Then
xTemp = xStr & "," & xCell.Address
End If
If Len(xTemp) > 171 Then
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
xStr = xCell.Address
Else
xStr = xTemp
End If
Ctn:
Next
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
For I = xCount To 1 Step -1
If I = 1 Then
xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
Else
xStr = xArr(I)
End If
If xDRg Is Nothing Then
Set xDRg = Range(xStr)
Else
Set xDRg = Union(xDRg, Range(xStr))
End If
If (Len(xDRg.Address) >= 244) Or (xCount = 1) Then
xDRg.EntireRow.Delete
Set xDRg = Nothing
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Awesome, thank you! Will review at my next opportunity / need for this and reply back.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations