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ị

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 Excel

Nế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

  1. Nhấp vào tùy chọn Tệp
  2. Trong các tùy chọn bên trái, nhấp vào 'Thông tin'
  3. Nhấp vào tùy chọn 'Kiểm tra sự cố'
  4. Nhấp vào tùy chọn 'Kiểm tra tài liệu'. Thao tác này sẽ mở hộp thoại Trình kiểm tra tài liệu
  5. Trong hộp thoại 'Trình kiểm tra tài liệu', nhấp vào nút 'Kiểm tra'. Thao tác này sẽ kiểm tra toàn bộ sổ làm việc và cung cấp cho bạn thông tin về sổ làm việc
  6. Cuộn xuống tùy chọn 'Hàng và Cột ẩn'. Bạn sẽ thấy rằng nó hiển thị tổng số hàng và cột ẩn mà nó đã tìm thấy trong sổ làm việc
  7. Nhấp vào nút 'Xóa tất cả'

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 VBA

Nế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

Chủ Đề