
1. Link tải xuống trực tiếp
LINK TẢI GG DRIVE: LINK TẢI 1
LINK TẢI GG DRIVE: LINK TẢI 2
LINK TẢI GG DRIVE: LINK DỰ PHÒNG
Trong bài viết cách sử dụng autofilter trong VBA (phần 1) PCGuide.VN đã giới thiệu đến các bạn cách autofilter, công thức autofilter, …. Trong bài viết cách sử dụng autofilter trong VBA (phần 2) PCGuide.VN cung cấp một số ví dụ để minh họa việc sử dụng bộ lọc tự động trong VBA.
Bài viết dưới đây PCGuide.VN xin giới thiệu đến các bạn một số ví dụ sử dụng Autofilter trong VBA. Ngoài ra, bạn đọc có thể tham khảo một số bài viết hiện có trên PCGuide.VN để tìm hiểu thêm về hàm TRIM và hàm DIR trong VBA.
1. Ví dụ về bộ lọc tự động trong VBA
Dưới đây là một số ví dụ về việc sử dụng Autofilter trong VBA:
1.1 Ví dụ 1: Lọc dữ liệu dựa trên điều kiện văn bản
Giả sử bạn có một tệp dữ liệu như bên dưới và bạn muốn lọc dữ liệu dựa trên cột Mục:
Đoạn mã sau lọc tất cả các dòng có các phần tử là Máy in:
Bộ lọc phụ ()
Trang tính (“Trang 1”). Khu vực (“A1”). Trường Tự động lọc: = 2, Tiêu chí1: = “máy in”
Kết thúc Sub
Mã trên áp dụng cho Trang tính 1 và trong bảng, cho ô A1 (ô trong bản ghi).
Lưu ý trong ví dụ này rằng chúng tôi đang sử dụng Trường: = 2vì cột Mục là cột thứ hai trong tập dữ liệu từ bên trái.
1.2 Ví dụ 2: Lọc dữ liệu theo một số tiêu chí (VÀ / HOẶC) trong cùng một cột
Giả sử chúng ta có cùng một tập dữ liệu và chúng tôi muốn lọc tất cả các tập dữ liệu trong đó các mục nhập là Máy in hoặc Máy chiếu:
Để làm điều này, chúng tôi sử dụng mã sau:
Sub FilterRowsOR ()
Trang tính (“Trang 1”). Khu vực (“A1”). Trường Tự động lọc: = 2, tiêu chí1: = “máy in”, toán tử: = xlOr, tiêu chí2: = “máy chiếu”
Kết thúc Sub
Lưu ý rằng trong đoạn mã trên, chúng ta đang sử dụng toán tử xlOR. Bằng cách này, VBA có thể sử dụng cả hai tiêu chí và lọc dữ liệu nếu một trong hai tiêu chí được đáp ứng.
Chúng ta có thể sử dụng tiêu chí AND theo cách tương tự.
Ví dụ: nếu chúng ta muốn lọc tất cả các bản ghi có số tiền lớn hơn 10 nhưng nhỏ hơn 20, chúng ta có thể sử dụng mã sau:
Bộ lọc phụRowsAND ()
Trang tính (“Trang 1”). Khu vực (“A1”). Trường AutoFilter: = 4, criteria1: = “> 10”, _
Toán tử: = xlAnd, Criteria2: = “
Kết thúc Sub
1.3 Ví dụ 3: Lọc dữ liệu theo nhiều tiêu chí, nhưng theo các cột khác nhau
Giả sử chúng ta có tệp dữ liệu sau:
Với bộ lọc tự động, chúng tôi có thể lọc nhiều cột cùng một lúc.
Ví dụ: nếu chúng ta muốn lọc tất cả các bản ghi mà Máy in và Đại diện Bán hàng được Đánh dấu, chúng ta có thể sử dụng mã sau:
Bộ lọc phụ ()
Với bảng tính (“Sheet1”). Khu vực (“A1”)
Trường .AutoFilter: = 2, criteria1: = “máy in”
Trường .AutoFilter: = 3, criteria1: = “Đánh dấu”
Kết thúc với
Kết thúc Sub
1.4 Ví dụ 4: Sử dụng bộ lọc tự động để lọc 10 dữ liệu hàng đầu
Giả sử chúng ta có bảng dữ liệu sau:
Sử dụng mã sau để lọc 10 bản ghi hàng đầu (dựa trên cột Số lượng):
Sub FilterRowsTop10 ()
ActiveSheet.Range (“A1”). Trường AutoFilter: = 4, Criteria1: = “10”, Operator: = xlTop10Items
Kết thúc Sub
Trong ví dụ trên, bảng được gọi là ActiveSheet. Bạn có thể thay thế nó bằng tên bảng tính của mình.
Lưu ý rằng trong ví dụ trên, chúng ta chỉ cần thay đổi số thành nếu chúng ta muốn 5 mục hàng đầu Criteria1: = “10 ” từ 10 đến 5.
Mã để có được năm yếu tố quan trọng nhất như sau:
Sub FilterRowsTop5 ()
ActiveSheet.Range (“A1”). Trường AutoFilter: = 4, criteria1: = “5”, operator: = xlTop10Items
Kết thúc Sub
Bất kể có bao nhiêu bài báo hàng đầu mà chúng tôi muốn nhận, giá trị toán tử luôn là xlTop10Items.
Để có 10 phần tử thấp nhất, chúng tôi sử dụng mã sau:
Bộ lọc phụRowsBottom10 ()
ActiveSheet.Range (“A1”). Trường AutoFilter: = 4, Criteria1: = “10”, Operator: = xlBottom10Items
Kết thúc Sub
1.5 Ví dụ 5: Lọc 10% dữ liệu bằng phương pháp AutoFilter
Chúng ta tiếp tục sử dụng bảng dữ liệu trong ví dụ trên.
Sử dụng mã sau để nhận 10% bản ghi hàng đầu (dựa trên cột Số lượng):
Sub FilterRowsTop10 ()
ActiveSheet.Range (“A1”). Trường AutoFilter: = 4, Criteria1: = “10”, Operator: = xlTop10Percent
Kết thúc Sub
Vì bảng dữ liệu của chúng tôi chứa 20 bản ghi, đoạn mã trên sẽ trả về hai bản ghi hàng đầu (10% tổng số bản ghi).
1.6 Ví dụ 6: Sử dụng các ký tự đại diện trong bộ lọc tự động
Cho bảng dữ liệu như sau:
Để lọc tất cả các dòng có tên chứa các phần tử từ Board, chúng tôi sử dụng mã sau:
Sub FilterRowsWildcard ()
Trang tính (“Trang 1”). Khu vực (“A1”). Trường AutoFilter: = 2, criteria1: = “* Board *”
Kết thúc Sub
Trong đoạn mã trên, chúng tôi đang sử dụng ký tự đại diện * * (Dấu sao) trước và sau chữ Board (là tiêu chí).
Dấu hoa thị có thể đại diện cho bất kỳ số ký tự nào. Vì vậy, đoạn mã trên lọc tất cả các phần tử có từ “hội đồng quản trị” trong đó.
1.7 Ví dụ 7: Sao chép các hàng đã lọc vào một trang tính mới
Nếu chúng ta muốn lọc các bản ghi dựa trên tiêu chí và sao chép các hàng đã lọc, chúng ta có thể sử dụng macro sau. Macro sao chép các dòng đã lọc, thêm một sổ làm việc mới và chèn các dòng đã lọc vào sổ làm việc mới:
Sub CopyFilteredRows ()
Làm mờ như một khu vực
Dim ws As Worksheet
If worksheet (“Sheet1”). AutoFilterMode = False Sau đó
MsgBox “không có dòng nào”
Bỏ sub
Kết thúc nếu
Đặt rng = worksheets (“Sheet1”). AutoFilter.Range
Đặt ws = Worksheets.Add
rng. Phạm vi sao chép (“A1”)
Kết thúc Sub
Đoạn mã trên sẽ kiểm tra xem có các hàng được lọc trong Sheet1 hay không. Nếu không có dòng nào được lọc, một hộp thoại thông báo sẽ hiển thị.
Nếu có các hàng được lọc, các hàng đó sẽ được sao chép, một trang tính mới được chèn và các hàng được lọc sẽ được chèn vào trang tính mới được chèn.
1.8 Ví dụ 8: Sao chép các cột đã lọc vào một trang tính mới
Nếu chúng ta muốn lọc các bản ghi dựa trên các tiêu chí và sao chép các cột đã lọc, chúng ta có thể sử dụng macro sau. Macro sao chép các cột đã lọc, thêm một sổ làm việc mới và chèn các cột này vào sổ làm việc mới:
Sub CopyFilteredRows ()
Làm mờ như một khu vực
Dim ws As Worksheet
If worksheet (“Sheet1”). AutoFilterMode = False Sau đó
MsgBox “không có điều kiện”
Bỏ sub
Kết thúc nếu
Đặt rng = worksheets (“Sheet1”). AutoFilter.Range
Đặt ws = Worksheets.Add
rng. Phạm vi sao chép (“A1”)
Kết thúc Sub
Đoạn mã trên sẽ kiểm tra xem có hay không các cột được lọc trong Sheet1. Nếu không có cột nào được lọc, một hộp thoại thông báo sẽ hiển thị.
Nếu có các cột được lọc, các cột đó sẽ được sao chép, một sổ làm việc mới được chèn và các cột được lọc sẽ được chèn vào trang tính mới được chèn.
1.9 Ví dụ 9: Lọc dữ liệu dựa trên giá trị ô
Với Autofilter trong VBA với menu thả xuống, chúng ta có thể tạo một chức năng mà khi chọn một phần tử trong menu, tất cả các bản ghi của phần tử này đều được lọc.
Loại cấu trúc này có thể hữu ích trong những trường hợp bạn muốn nhanh chóng lọc dữ liệu và sau đó sử dụng nó cho các tác vụ khác.
Để làm điều này, chúng tôi sử dụng mã sau:
Private Sub Worksheet_Change (Mục tiêu ByVal dưới dạng khu vực)
Nếu Target.Address = “$ B $ 2” thì
Nếu Phạm vi (“B2”) = “Tất cả” Thì
Khu vực (“A5”). Bộ lọc tự động
Nếu không thì
Khu vực (“A5”). Trường AutoFilter: = 2, criteria1: = range (“B2”)
Kết thúc nếu
Kết thúc nếu
Kết thúc Sub
Đây là mã sự kiện của bảng tính sẽ chỉ chạy khi trang tính thay đổi và ô đích là B2 (nơi chúng tôi có menu thả xuống).
Ngoài ra, nếu điều kiện If If Else được sử dụng để xác minh rằng người dùng đã chọn Mọi điều từ menu hoặc không. Nếu Mọi điều được chọn, tất cả dữ liệu được hiển thị.
Lưu ý rằng mã này không được bao gồm trong mô-đun. Thay vào đó, chúng tôi đặt nó trong phần phụ trợ của bảng với dữ liệu này.
Để dán mã vào cửa sổ mã sổ làm việc, hãy làm như sau:
Bước 1: Mở trình soạn thảo VB (sử dụng tổ hợp phím Alt + F11).
Bước 2: Trong Project Explorer, bấm đúp vào tên trang tính mà bạn muốn áp dụng bộ lọc.
Bước 3: Trong cửa sổ mã bảng tính, sao chép và dán đoạn mã trên.
Bước 4: Đóng cửa sổ VB Editor.
Bây giờ khi bạn sử dụng menu thả xuống, nó sẽ tự động lọc dữ liệu.
https://thuthuat.taimienphi.vn/su-dung-autofilter-trong-vba-phan-2-ĐÂY LÀ CẢNH BÁO. CÁC HÀNH VI XUYÊN TẠC, CHỐNG PHÁ NHÀ NƯỚC, THÔNG TIN SAI SỰ THẬT, ĐÂY LÀ CẢNH BÁO. CÁC HÀNH VI XUYÊN TẠC, CHỐNG PHÁ NHÀ NƯỚC, THÔNG TIN SAI SỰ THẬT, CỜ BẠC ĐIỀU BỊ NHÀ NƯỚC VIỆT NAM NGHIÊM CẤM VÀ LÀ HÀNH VI VI PHẠM PHÁP LUẬT VIỆT NAM. CHÚNG TÔI LÊN BÀI CẢNH BÁO NÀY VÀ ĐỀ NGHỊ YOUTUBE XÓA NHỮNG VIDEO VI PHẠM PHÁP LUẬT NÀY ĐIỀU BỊ NHÀ NƯỚC VIỆT NAM NGHIÊM CẤM VÀ LÀ HÀNH VI VI PHẠM PHÁP LUẬT VIỆT NAM. CHÚNG TÔI LÊN BÀI CẢNH BÁO NÀY VÀ ĐỀ NGHỊ YOUTUBE XÓA NHỮNG VIDEO VI PHẠM PHÁP LUẬT NÀY61n.aspx
Bài viết Sử dụng Autofilter trong VBA (Phần 2) trên PCGuide.VN vừa giới thiệu cho các bạn một vài ví dụ về cách sử dụng Autofilter trong VBA. Nếu có thắc mắc và góp ý, bạn đọc có thể để lại ý kiến của mình trong phần bình luận bên dưới bài viết.
Các từ khóa liên quan:
Sử dụng bộ lọc tự động trong VBA
, Bộ lọc tự động trong VBA, bộ lọc tự động,