fbpx

Hướng dẫn cách viết code VBA để ẩn hàng theo ý muốn trong Excel

Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Ẩ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é.

Cách viết code VBA để ẩn hàng theo ý muốn trong Excel

Cú pháp

code để ẩn hàng trong VBA là:

Tên_Workbook.Tên_Sheet.Range( [Vùng cần ẩn] ).EntireRow.Hidden = True

Ví dụ

Ẩ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

Gán biến để tùy biến dòng

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:

  • Gán 2 biến là TuDong ứng với giá trị ô B1, DenDong ứng với giá trị ô B2
  • Khi viết code ẩn dòng, thay đổi tọa độ số dòng bằng tên biến

Khi chạy code, ta có kết quả:

Cú pháp mở ẩn

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

Lưu ý khi thực hiện code ẩn – mở ẩn kết hợp

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:

  • Bước 1: Bỏ ẩn toàn bộ các dòng đã ẩn
  • Bước 2: Ẩn những dòng theo lựa chọn

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!


Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •