Cách không in hàng ẩn trong Excel
Đó là một cách để chỉ hiển thị dữ liệu hữu ích và đồng thời không phải xóa dữ liệu mà bạn không cần hiển thị Show Và, nếu bạn có nhiều hàng/cột bị ẩn như vậy, bạn có thể gặp khó khăn khi tìm và xóa các hàng và cột bị ẩn này (trong trường hợp bạn không cần đến chúng) Trong hướng dẫn này, tôi sẽ chỉ cho bạn một số cách để dễ dàng xóa các hàng và cột ẩn trong Excel Có một phương pháp sẵn có cho phép bạn xóa tất cả các hàng và cột ẩn trong một lần và bạn cũng có thể sử dụng mã macro VBA trong trường hợp bạn muốn áp dụng phương pháp này cho phạm vi ô đã chọn của chúng tôi Vậy hãy bắt đầu Hướng dẫn này bao gồm Xóa tất cả các hàng và cột ẩn trong ExcelNếu bạn muốn xóa tất cả các hàng và cột bị ẩn trong toàn bộ sổ làm việc trong Excel, bạn có thể sử dụng phương pháp được hiển thị tại đây Hãy nhớ rằng nó sẽ xóa các hàng và cột ẩn này khỏi toàn bộ sổ làm việc chứ không chỉ khỏi trang tính đang hoạt động Dưới đây là các bước để xóa tất cả các hàng và cột ẩn khỏi sổ làm việc trong Excel
Các bước trên sẽ xóa tất cả các hàng và cột ẩn trong sổ làm việc Lưu ý rằng bạn cần lưu sổ làm việc này trước khi chạy tùy chọn Trình kiểm tra tài liệu. Trong trường hợp sổ làm việc chưa được lưu, trước tiên Excel sẽ buộc bạn lưu nó. Ngoài ra, nó sẽ hiển thị cho bạn lời nhắc cảnh báo yêu cầu lưu tệp một lần vì không thể khôi phục dữ liệu đã thay đổi theo các bước này Trong trường hợp không có hàng và cột bị ẩn, bạn sẽ thấy dấu tích màu xanh trước tùy chọn Ẩn và Hàng và Cột (trong hộp thoại Trình kiểm tra tài liệu) Ngoài các hàng và cột bị ẩn, hộp thoại Trình kiểm tra Tài liệu còn cung cấp cho bạn rất nhiều thông tin hữu ích khác – chẳng hạn như số lượng nhận xét, trang tính ẩn hoặc tài liệu nhúng, v.v. Ghi chú. Bạn không thể hoàn tác các thay đổi do Trình kiểm tra tài liệu thực hiện. Vì vậy, hãy đảm bảo rằng bạn có một bản sao lưu của dữ liệu gốc (trong trường hợp nếu bạn có thể cần đến nó trong tương lai) Đây là một phương pháp tuyệt vời nếu bạn muốn xóa tất cả các cột và hàng ẩn cho toàn bộ sổ làm việc Nhưng trong trường hợp bạn chỉ muốn xóa trong một sheet cụ thể hoặc trong một phạm vi cụ thể thì không thể sử dụng tùy chọn này Trong trường hợp đó, bạn có thể sử dụng phương pháp VBA được trình bày tiếp theo Xóa hàng và cột ẩn bằng VBANếu bạn chỉ có một số hàng và cột bị ẩn, bạn có thể hiện các hàng và cột này theo cách thủ công rồi xóa chúng Nhưng nếu đây là việc bạn cần làm khá thường xuyên hoặc nếu bạn có một tập dữ liệu lớn với số lượng lớn hàng/cột bị ẩn, thì tốt nhất bạn nên sử dụng mã macro VBA để tự động hóa quy trình này Hãy xem xét các tình huống khác nhau mà bạn có thể sử dụng VBA để xóa các hàng và cột ẩn này Từ Toàn bộ Trang tính (Phạm vi đã Sử dụng)Mặc dù tôi có thể làm cho mã VBA kiểm tra toàn bộ trang tính bắt đầu từ số hàng cuối cùng và số cột cuối cùng trong trang tính, nhưng điều đó sẽ gây lãng phí tài nguyên Một phương pháp tốt hơn là xem phạm vi đã sử dụng là gì và sau đó chỉ kiểm tra phạm vi đã sử dụng đó cho bất kỳ hàng và cột ẩn nào Dưới đây là mã VBA sẽ xóa tất cả các hàng ẩn trong phạm vi đã sử dụng Sub DeleteHiddenRows() Dim sht As Worksheet Dim LastRow Set sht = ActiveSheet LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row For i = LastRow To 1 Step -1 If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete Next End Sub Trước tiên, mã VBA ở trên tìm ra số hàng cuối cùng trong phạm vi đã sử dụng và gán số hàng đó cho biến 'LastRow' Số hàng cuối cùng này sau đó được sử dụng trong vòng lặp Tiếp theo, nơi nó bắt đầu từ hàng cuối cùng và kiểm tra xem nó có bị ẩn hay không Trong trường hợp nó bị ẩn, toàn bộ hàng đó sẽ bị xóa. Và trong trường hợp nó không bị ẩn, mã sẽ để nguyên hàng đó và di chuyển lên hàng phía trên nó. Vòng lặp này kiểm tra tất cả các hàng và xóa mọi hàng ẩn mà nó gặp trong quy trình Trường hợp bạn muốn xóa hết các cột ẩn trong dãy đã sử dụng thì sử dụng đoạn code VBA bên dưới Sub DeleteHiddenColumns() Dim sht As Worksheet Dim LastCol as Integer Set sht = ActiveSheet LastCol = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column For i = LastCol To 1 Step -1 If Columns(i).Hidden = True Then Columns(i).EntireColumn.Delete Next End Sub Điều này một lần nữa hoạt động theo cùng một cách, thay vì các hàng, chúng tôi đang kiểm tra các cột Vì vậy, nó tìm ra số cột cuối cùng trong phạm vi đã sử dụng, gán nó cho một biến, sau đó sử dụng vòng lặp để đi từ cột cuối cùng đến cột đầu tiên và xóa tất cả các cột ẩn trong quy trình Và trong trường hợp bạn muốn có một đoạn code xóa toàn bộ hàng bị ẩn cũng như cột bị ẩn thì sử dụng đoạn code VBA bên dưới Sub DeleteHiddenRowsColumns() Dim sht As Worksheet Dim LastRow as Integer Dim LastCol as Integer Set sht = ActiveSheet LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row LastCol = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column For i = LastRow To 1 Step -1 If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete Next For i = LastCol To 1 Step -1 If Columns(i).Hidden = True Then Columns(i).EntireColumn.Delete Next End Sub Đây chỉ là mã kết hợp cho cả hàng và cột và hoạt động theo cùng một cách Thay vì một vòng lặp, điều này sử dụng hai vòng lặp riêng biệt, trong đó lần đầu tiên nó đi qua tất cả các hàng, sau đó nó đi qua tất cả các cột. Và trong quá trình này, nó sẽ xóa tất cả các hàng và cột ẩn mà nó gặp phải Lưu ý rằng bạn cần đặt mã VBA này trong một mô-đun thông thường trong Visual Basic Editor. Sau đó, bạn có thể chạy mã trực tiếp từ Trình soạn thảo VB, bằng cách sử dụng hộp thoại macro hoặc bằng cách thêm macro này vào thanh công cụ truy cập nhanh Nếu đây là việc bạn cần làm khá thường xuyên, bạn cũng có thể thêm mã này vào sổ làm việc macro cá nhân để bạn có quyền truy cập vào nó từ tất cả các sổ làm việc trên hệ thống của mình Từ một phạm vi ô cụ thểTrong trường hợp bạn có một phạm vi cụ thể mà bạn muốn xóa các hàng và cột ẩn, bạn cần chỉ định phạm vi đó trong mã Điều này đảm bảo rằng mã chỉ khoanh tròn qua các hàng và cột trong phạm vi được chỉ định đó và để nguyên các vùng khác trong trang tính Bên dưới mã VBA sẽ làm điều này Sub DeleteHiddenRowsColumns() Dim sht As Worksheet Dim Rng As Range Dim LastRow As Integer Dim RowCount As Integer Set sht = ActiveSheet Set Rng = Range("A1:K200") RowCount = Rng.Rows.Count LastRow = Rng.Rows(Rng.Rows.Count).Row ColCount = Rng.Columns.Count LastCol = Rng.Columns(Rng.Columns.Count).Column For i = LastRow To LastRow - RowCount Step -1 If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete Next For j = LastCol To LastCol - ColCount Step -1 If Columns(j).Hidden = True Then Columns(j).EntireColumn.Delete Next End Sub Trong đoạn mã trên, tôi đã chỉ định phạm vi là A1. K200 Điều này làm cho mã đi qua tất cả các hàng và cột trong phạm vi đã chỉ định và loại bỏ mọi hàng và cột ẩn mà mã gặp phải Trong trường hợp bạn có các hàng hoặc cột bị ẩn bên ngoài phạm vi này, những hàng hoặc cột đó sẽ không bị ảnh hưởng Vì vậy, đây là cách bạn có thể xóa các hàng và cột bị ẩn trong Excel Nếu bạn muốn làm điều đó trên toàn bộ sổ làm việc, bạn có thể sử dụng tùy chọn Trình kiểm tra tài liệu. Và trong trường hợp bạn cần kiểm soát nhiều hơn, bạn có thể sử dụng các mã VBA như hình trên |