VBA Excel (Bài 33): Cách ẩn cột, ẩn hàng trong Excel bằng VBA

Việc ẩn cột, ẩn hàng trong Excel được ứng dụng trong nhiều trường hợp:

  • Bạn muốn trình bày một số nội dung, trong đó những cột / hàng chứa nội dung không cần thiết sẽ được ẩn đi thay vì xóa. Vì khi ẩn đi thì có thể mở ẩn là sử dụng bình thường, còn xóa thì sẽ mất luôn những dữ liệu đã xóa, gây ảnh hưởng tới những nội dung khác.
  • Trong một số hàm tính toán có phân biệt những giá trị ẩn, do đó việc ẩn/ mở ẩn sẽ ảnh hưởng tới 1 số hàm và kết quả mong muốn.
  • Khi copy dữ liệu trong VBA, chúng ta cần ẩn những nội dung không cần thiết đi để lấy được kết quả mong muốn

Vậy cách ẩn cột, ẩn hàng và bỏ ẩn được thực hiện trong VBA như thế nào? Chúng ta cùng tìm hiểu nhé:

CÁCH ẨN CỘT TRONG VBA

1. ẨN CỘT ĐÃ ĐƯỢC XÁC ĐỊNH CỤ THỂ

Những cột đã được xác định cụ thể là những cột có thể gọi tên một cách trực tiếp.

Câu lệnh như sau:

Tên sheet.Vùng chứa những cột cần ẩn.EntireColumn.Hidden = True

Gọi tên vùng chứa cột cần ẩn, sau đó sử dụng “EntireColumn” để chỉ định tới các cột trong vùng đó.

Sau đây là một số ví dụ:

Ẩn cột A và cột C trong Sheet1

Trong ví dụ trên, vì cùng thực hiện trong Sheet1 do đó chúng ta có thể đặt With Sheet1…. End With để viết Code cho gọn hơn

Để ẩn các cột liền nhau thì ra có thể gom chung các vùng đó, ví dụ như ẩn cột từ A đến D (gồm các cột A, B, C, D) như sau:

Sheet1.Range(“A1:D1”).EntireColumn.Hidden = True

2. ẨN CỘT KHÔNG XÁC ĐỊNH CỤ THỂ

Những cột không xác định cụ thể là cột được xác định dựa theo Range động.

Ví dụ:

Ẩn cột từ cột C tới cột cuối cùng có chứa dữ liệu trong bảng sau:

Câu lệnh như sau:

CÁCH BỎ ẨN CỘT TRONG VBA

Để mở ẩn cột, chúng ta sẽ chọn thuộc tính True bằng thuộc tính False trong câu lệnh ẩn cột

Câu lệnh như sau:

Tên sheet.Vùng chứa những cột cần ẩn.EntireColumn.Hidden = False

Ví dụ:

Để mở ẩn cột A, B, C, D đã ẩn ở trên, chúng ta dùng câu lệnh:

Sheet1.Range(“A1:D1”).EntireColumn.Hidden = False

CÁCH ẨN / BỎ ẨN HÀNG TRONG VBA

Tương tự với cách ẩn cột, chúng ta thực hiện việc ẩn hàng bằng cách thay nội dung ‘EntireColumn’ thành ‘EntireRow’

Câu lệnh ẩn hàng như sau:

Tên sheet.Vùng chứa những hàng cần ẩn.EntireRow.Hidden = True

Câu lệnh bỏ ẩn hàng như sau:

Tên sheet.Vùng chứa những hàng cần ẩn.EntireRow.Hidden = False

Ví dụ:

Ẩn dòng từ dòng 2 tới dòng 4 trong Sheet1:

Sheet1.Range(A2:A4).EntireRow.Hidden = True

Bỏ ẩn dòng 2 tới dòng 4 trong Sheet 1:

Sheet1.Range(A2:A4).EntireRow.Hidden = False

Ẩn từ dòng 5 tới dòng cuối cùng có chứa dữ liệu trong bảng trên: