VBA Excel (Bài 27): Hướng dẫn cách sử dụng SpecialCells trong VBA

SpecialCells trong Excel giúp chúng ta tách riêng những ô dữ liệu đặc biệt trong Excel: những ô không bị ẩn, những ô không bị trống, những nội dung còn lại sau khi lọc… Do đó việc sử dụng SpecialCells rất quan trọng trong VBA giúp chúng ta có thể kết hợp với các kỹ thuật xử lý dữ liệu để đạt được mục đích.

1. CÁCH MỞ CỬA SỔ SPECIALCELLS THÔNG THƯỜNG

Trong Excel chúng ta có thể gọi được cửa sổ SpecialCells thông qua phím tắt F5 để mở cửa sổ Go To => Bấm vào nút Special…

Cửa sổ Special và các đối tượng thường sử dụng:

2. CÁCH SỬ DỤNG SPECIALCELLS TRONG VBA

Cấu trúc sử dụng SpecialCells trong VBA như sau:

Tên Sheet.Vùng.SpecialCells(Loại của SpecialCells).Hành động cần thực hiện

SheetCodeName.YourRange.SepecialCells(TypeofSpecialCells).ActiontoPerform

Loại của SpecialCells bao gồm các loại sau (thường sử dụng)

xlCellTypeBlanks là các ô trống, có thể viết là SpecialCells(4) hoặc SpecialCells(xlCellTypeBlanks)

xlCellTypeConstants là các ô chứa hằng số, có thể viết là SpecialCells(2) hoặc SpecialCells(xlCellTypeConstants)

xlCellTypeLastCell là ô cuối cùng có chứa nội dung trong vùng dữ liệu, có thể viết là SpecialCells(11) hoặc SpecialCells(xlCellTypeLastCell)

xlCellTypeVisible là các ô đang được hiển thị (kết quả của Autofilter, không bao gồm các ô đã bị ẩn), có thể viết là SpecialCells(12) hoặc SpecialCells(xlCellTypeVisible)

Sau đây chúng ta xét một vài ví dụ thường gặp để hiểu hơn về cách sử dụng chức năng này:

Ví dụ : Copy nội dung kết quả sau khi lọc bằng AutoFilter, ứng dụng trong lập Báo cáo chi tiết tự động với VBA

Trong ví dụ này, chúng ta chú ý tới đoạn macro sau:

Câu lệnh Chọn nội dung cần copy và thực hiện việc copy sử dụng ở dòng 21 và 22 trong đoạn code trên. Lưu ý là chỉ sử dụng 1 trong 2 cách và đều cho ra kết quả giống nhau.