VBA Excel Cấp Tốc Bài 1 - Lọc Dữ Liệu Nhiều Điều Kiện Với ...

Video bài học số 1: Lọc dữ liệu VBA Excel

Advanced Filter lọc dữ liệu nhiều điều kiện.

Trước khi đi bắt đầu lọc dữ liệu có điều kiện với Advanced Filter thì bạn nên hiểu một ít về VBA.

VBA Excel là gì?

VBA là viết tắt của Visual Basic Application, là ứng dụng lập trình cơ bản trong Microsoft Office. Hiểu nôm na thì lập trình VBA trong Excel là việc ta viết các câu lệnh để các thao tác trong Excel được thực hiện tự động. VBA làm được những gì? VBA có thể làm được tất cả các công việc mà Excel làm được Lưu trữ danh sách, lên kế hoạch, phân tích dữ liệu, phát triển các biểu đồ, xây dựng chương trình,...

Bắt đầu thực hành lọc dữ liệu nhiều điều kiện với Advanced Filter.

Bạn cần chuẩn bị sẵn File để thực hành hoặc có thể tải File thực hành tại đây. Alt + f11 để mở cửa sổ Visual Basic.

mở visual basic

Kích chuột phải vào Sheet 1 -> Insert -> Module -> hiện ra phần để mình viết code.

mở module để viết code

Vì đây là viết code để thực hiện nên sẽ có mở đầu và kết thúc. mở đầu code Sub Đặt_tên_cho_code mở ngoặc đóng ngoặc Enter phần kết thúc code tự hiện ra. Xem hình bên dưới để hình dung nhé.

mở đầu kết thúc code

Đầu tiên bạn phải khai báo biến Dim rg as range, rg này chính là vùng dữ liệu của mình. Nên mình đặt luôn Set rs = sheets("Data").Range("B4").currentRegion. Là khi bắt đầu từ B2 nó sẽ tự động bôi đen vùng dữ liệu. Và khai báo thêm biến Dim criterial_rg as range, rg này chính là vùng điều kiện. Nên cũng đặt luôn Set criterial_rs = sheets("Data").Range("J4").currentRegion khai báo thêm vùng để chiết xuất dữ liệu Dim copy_rg as range, rg này là vùng chiết xuất dữ liệu. Nên cũng đặt luôn Set copy_rs = sheets("Data").Range("M4"). dữ liệu thỏa điều kiện sẽ được copy ra bắt đầu từ M4. rg là vùng dữ liệu ta bắt đầu chạy với dòng code là: rg.AdvancedFilter xlFilterCopy, criterial_rg, copy_rg

code điều kiện

Kết quả sau khi lọc thỏa mãn điều kiện.

kết quả lọc có điều kiện

Muốn thay đổi điều kiện lọc hay thêm điều kiện lọc trước hết ta phải xóa kết quả vừa lọc được. Để xóa kết quả vừa lọc được thì ra dùng lệnh: Sheets("Data").Range("M:S").Delete và cho chạy lệnh chạy lên này trước bằng cách kích vào lệnh và ấn Run.

chạy lệnh xóa

Sau đó ta cho chạy lại lệnh của dữ liệu và Run lần nữa để sau đó bạn có thể thay đổi điều kiện lọc mà không cần phải thực hiện lại bước này.

chạy lện xóa trong excel

kết quả sau khi xóa và thêm điều kiện lọc.

kết quả lọc với hai điều kiện

Tạo Macro.

Tạo Macro để khi chạy chương trình lọc bạn chỉ cần thêm điều kiện và kích vào Macro là chạy được chương trình lọc mà không cần phải mở Visual Basic lên. Vào thẻ Insert chọn hình trong mục Shapes sau đó giữ chuột trái kéo.

tạo macro

Kích chuột phải vào hình sau đó chọn Assign Macro.

tạo macro trong excel

kích vào tên chương trình lọc bạn tạo lúc đầu sau đó chọn ok.

xong macro

Giờ bạn chỉ cần thêm hay chỉnh sửa điều kiện lọc sau đó kích vào Macro vừa tạo là có thể chạy chương trình lọc.

macro lọc

Đoạn code của lọc dữ liệu có điều kiện với Advanced Filter:

Sub loc_dieu_kien() Dim rg As Range Dim criterial_rg As Range Dim copy_rg As Range

Sheets("Data").Range("M:S").Delete

Set rg = Sheets("Data").Range("B4").CurrentRegion Set criterial_rg = Sheets("Data").Range("J4").CurrentRegion Set copy_rg = Sheets("Data").Range("M4")

rg.AdvancedFilter xlFilterCopy, criterial_rg, copy_rg

End Sub

Nếu có thắc mắc hay gặp vấn đề gì cần giúp đỡ bạn hãy để lại bình luận phía bên dưới mình sẽ giải đáp. Cảm ơn bạn đã đọc bài viết, Chúc bạn thực hành tốt.

>> VBA Excel Cấp Tốc Bài 2 - In Bảng Cửu Chương

Từ khóa » Bỏ Filter Bằng Vba