Ẩn hàng (Hide Row) và bỏ ẩn hàng (Unhide Row) là một trong những thao tác thường sử dụng trong Excel. Nhưng thao tác này đôi khi khiến chúng ta mất nhiều thời gian và phải làm thủ công. Vậy có cách nào để tự động hóa thao tác đó và làm cho nó trở nên đơn giản hơn không? Hãy cùng https://hocexcel.online/ tìm hiểu qua bài viết này nhé.
Xem nhanh
code để ẩn hàng trong VBA là:
Tên_Workbook.Tên_Sheet.Range( [Vùng cần ẩn] ).EntireRow.Hidden = True
Ẩn dòng 5 đến dòng 10 của Sheet1 trong Workbook đang làm việc:
ThisWorkbook.Sheets(“Sheet1”).Range(“A5:A10”).EntireRow.Hidden = True
Vì ẩn hàng nên không cần quan tâm cột nào, chỉ cần quan tâm đúng số dòng cần ẩn là dòng 5 tới dòng 10
Thay vì nhập trực tiếp vùng A5:A10 như trong ví dụ trên, chúng ta có thể tùy biến số 5 và số 10 như sau:
Gán vào Sheet1 số dòng cần ẩn, ví dụ ô B1 nhận giá trị là 8, ô B2 nhận giá trị là 16
Chúng ta có thể tự do thay đổi giá trị tại 2 ô này.
Để có thể sử dụng được 2 giá trị tại ô B1 và B2 để điều khiển code, chúng ta thực hiện gán biến như sau:
Khi chạy code, ta có kết quả:
Ngược lại với cú pháp ẩn, ta có cú pháp mở ẩn dòng tương tự như sau:
Tên_Workbook.Tên_Sheet.Range( [Vùng cần ẩn] ).EntireRow.Hidden = False
Khi đã ẩn dòng trước đó rồi, chúng ta muốn đổi sang các dòng khác thì cần chú ý bỏ ẩn những dòng đã ẩn trước đó. Sau đó mới ẩn những dòng mới.
Trình tự khi viết code như sau:
Code hoàn thiện:
Để copy đoạn code này, các bạn bấm vào mục view raw ở góc phải phía dưới màn hình code, sau đó copy code tại cửa sổ riêng.
Phạm vi dòng 1 đến 10000 có thể tùy biến theo nhu cầu sử dụng của bạn (nếu toàn bộ Sheet dùng khoảng 1000 dòng thì bạn chỉ cần bỏ ẩn tới dòng 1000 là đủ)
Khi đó phạm vi 2 biến Từ dòng và Đến dòng cũng cần chú ý tránh vượt quá giới hạn (phải nhỏ hơn hoặc bằng vùng được mở ẩn)
Chúc các bạn áp dụng thành công!