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.
Xem nhanh
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:
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ụ 1: 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
Tải về file ví dụ tại địa chỉ: http://bit.ly/2F1AD9W
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.
Ví dụ 2: Xóa dòng trống xen kẽ trong bảng tính
Tải về file ví dụ tại địa chỉ: http://bit.ly/2Dwdr7v
Lệnh xóa dòng trống, sử dụng SpecialCells > Type = 4 = xlCellsTypeBlanks
Chúc các bạn học tốt cùng Học Excel Online!