Tự động lọc của Excel tính năng thực sự hiệu quả để trích xuất dữ liệu dựa trên các điều kiện nhất định. Nhưng đôi khi do sự cố kỹ thuật, Tự động lọc bị ẩn hoặc mặc dù không có bộ lọc, Excel cho thấy rằng có. Trong trường hợp đó, thật khó hiểu liệu AutoFilter có được bật cho trang tính Excel hay không. Triển khai VBA là phương pháp hiệu quả nhất, nhanh nhất và an toàn nhất để chạy bất kỳ thao tác nào trong Excel. Trong bài viết này, chúng tôi sẽ chỉ cho bạn 4 cách dễ dàng và nhanh chóng để kiểm tra xem AutoFilter có đang bật trong Excel với macro VBA .
Tải xuống Workbook
Bạn có thể tải xuống sổ làm việc Excel thực hành miễn phí từ đây.
4 Cách Nhanh với VBA để Kiểm tra xem Tự động Lọc có được Bật trong Excel
Tiếp theo phần này, bạn sẽ tìm hiểu cách kiểm tra xem AutoFilter có đang bật trong Excel với VBA theo 4 cách khác nhau.
Trên đây là tập dữ liệu mẫu mà bài viết này sẽ làm theo để mô tả các thủ tục.
1. Nhúng VBA để kiểm tra xem Tự động lọc được Bật hay Tắt trong Trang tính Excel
Trong phần này, bạn sẽ học cách kiểm tra xem Tự động lọc có được bật cho trang tính Excel hay không với VBA . Các bước để thực thi được đưa ra bên dưới.
Các bước:
- Lúc đầu, nhấn Alt + F11 trên bàn phím của bạn hoặc chuyển đến tab Nhà phát triển -> Visual Basic để mở Visual Basic Editor .
- Tiếp theo, trong cửa sổ mã bật lên, từ thanh trình đơn, nhấp vào Chèn -> Mô-đun .
- Sau đó, sao chép mã sau và dán nó vào cửa sổ mã.
Sub AutoFilterCheck()
If ActiveSheet.AutoFilterMode = True Then
MsgBox "Auto Filter is turned on"
Else
MsgBox "Auto Filter is turned off"
End If
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Bây giờ, nhấn F5 trên bàn phím của bạn hoặc từ thanh trình đơn, chọn Run -> Run Sub / UserForm . Bạn cũng có thể chỉ cần nhấp vào biểu tượng Run nhỏ trong thanh menu phụ để chạy macro.
Sau khi thực thi mã thành công, hãy xem hình ảnh sau để kiểm tra kết quả.
Bây giờ, hãy nhìn vào hình ảnh trên. Mặc dù không có mũi tên bộ lọc trong tập dữ liệu, Excel MsgBox cho chúng tôi biết rằng Bộ lọc tự động được bật trong trang tính này .
Triển khai VBA thực sự thuận tiện cho những loại tình huống không chắc chắn về bất kỳ hoạt động nào; VBA macro giúp bạn trích xuất kết quả chính xác ngay cả khi mắt bạn không thể nhìn thấy chúng.
Giải thích mã VBA
If ActiveSheet.AutoFilterMode = True Then
MsgBox "Auto Filter is turned on"
Else
MsgBox "Auto Filter is turned off"
End If
Đoạn mã này đề cập đến nếu chế độ lọc tự động đúng với trang tính đang hoạt động , sau đó trả về “ Bộ lọc tự động được bật ”Trong Excel MsgBox ; Nếu không , nó ném “ Bộ lọc tự động bị tắt ”.
Đọc thêm: Excel VBA:Xóa tự động lọc nếu nó tồn tại (7 cách)
2. Gỡ lỗi mã VBA và nhận tổng số bộ lọc tự động trong trang tính đang hoạt động
Phần này sẽ chỉ cho bạn cách bạn có thể gỡ lỗi mã và đếm số lượng Bộ lọc tự động có trong một trang tính Excel. Sau khi thực thi mã, nó sẽ đưa ra kết quả trong Cửa sổ ngay lập tức của Excel VBA .
Các bước để có được điều đó được đưa ra dưới đây.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Sau đó, sao chép mã sau và dán nó vào cửa sổ mã.
Sub CountAutoFilters()
Dim iCount As Long
If ActiveSheet.AutoFilterMode = True Then iCount = 1
Debug.Print "AutoFilterMode Count: " & iCount
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Sau đó, Chạy macro như chúng tôi đã cho bạn thấy trong phần trên. Kết quả được hiển thị trong hình ảnh bên dưới.
Như bạn có thể thấy trong hình ảnh ở trên, trong Cửa sổ ngay lập tức bạn sẽ nhận được tổng số Bộ lọc tự động được bật trong trang tính của bạn.
Giải thích mã VBA
Dim iCount As Long
Tuyên bố biến .
If ActiveSheet.AutoFilterMode = True Then iCount = 1
Debug.Print "AutoFilterMode Count: " & iCount
Vài dòng trong mã này có nghĩa là nếu chế độ lọc tự động đúng với trang tính đang hoạt động , sau đó bắt đầu đếm và in tổng số .
Đọc thêm: VBA để tự động lọc với nhiều tiêu chí trên cùng một trường trong Excel (4 phương pháp)
3. Áp dụng VBA để kiểm tra xem một cột cụ thể có được lọc hay không trong Excel
Giả sử bạn muốn kiểm tra xem một cột cụ thể trong bảng tính Excel của bạn có được lọc hay không với VBA .
Hãy xem các bước về cách thực hiện điều đó.
Các bước:
- Như được hiển thị trước đây, hãy mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Sau đó, sao chép mã sau và dán nó vào cửa sổ mã.
Sub CheckColumnFilter()
Dim iSheet As Worksheet
Set iSheet = ActiveSheet
If iSheet.AutoFilter.Filters(2).On Then
MsgBox "Column B is filtered."
Else
MsgBox "Column B is not filtered."
End If
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Sau đó, Chạy macro và nhìn vào hình ảnh sau để xem kết quả.
Bây giờ, hãy xem xét hình ảnh trên. Mặc dù bạn có thể thấy rằng có một mũi tên bộ lọc trong cột B , macro đang cho chúng ta biết rằng không có. Vì vậy, sau khi thực thi mã thành công, chúng ta có thể nói rằng cột B không được Lọc tự động .
Giải thích mã VBA
Dim iSheet As Worksheet
Tuyên bố biến cho trang tính .
Set iSheet = ActiveSheet
Lưu trữ trang tính đang hoạt động trong biến đã khai báo.
If iSheet.AutoFilter.Filters(2).On Then
MsgBox "Column B is filtered."
Else
MsgBox "Column B is not filtered."
End If
Đoạn mã này đề cập đến nếu bộ lọc tự động cho Cột 2 hoặc Cột B đúng với trang tính đang hoạt động , sau đó trả về “ Cột B đã được lọc. ”Trong Excel MsgBox ; Nếu không , nó ném “ Cột B không được lọc. ”.
Đọc thêm: Cách tự động lọc các giá trị không bằng một giá trị nhất định với VBA trong Excel
4. VBA Macro để kiểm tra bộ lọc tự động đã bật trong sổ làm việc Excel
Trong phần này, bạn sẽ tìm hiểu cách bạn có thể kiểm tra Bộ lọc Tự động được bật hoặc tắt cho một trang tính trong sổ làm việc Excel cụ thể .
Các bước để thực thi được đưa ra bên dưới.
Các bước:
- Đầu tiên, hãy mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Sau đó, sao chép mã sau và dán nó vào cửa sổ mã.
Sub CheckAutofilterSheet()
Dim z As Double
For z = 1 To ThisWorkbook.Sheets.Count
If ThisWorkbook.Sheets(z).AutoFilterMode Then
MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter"
End If
Next
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Tiếp theo, Chạy macro. Bây giờ, hãy nhìn vào hình ảnh sau để biết kết quả.
Như bạn có thể thấy trong hình trên, sổ làm việc của chúng tôi có một trang tính có tên “ Tập dữ liệu ”. MsgBox của Excel cho chúng tôi thấy rằng trang “Tập dữ liệu” đã bật Tự động lọc . Bạn có thể thực hiện mã này cho tất cả các bảng tính của mình trong một sổ làm việc Excel cụ thể.
Giải thích mã VBA
Dim z As Double
Tuyên bố biến .
For z = 1 To ThisWorkbook.Sheets.Count
Bắt đầu lặp lại từ trang tính đầu tiên đến tổng số trang tính của sổ làm việc hiện có.
If ThisWorkbook.Sheets(z).AutoFilterMode Then
MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter"
End If
Next
Nếu trang tính đầu tiên được bật chế độ lọc tự động , sau đó ném thư vào MsgBox . Sau đó, mã kết thúc điều kiện và chuyển đến trang tính tiếp theo để thực hiện lặp. Nó tiếp tục làm điều này cho đến khi đạt đến tất cả số lượng trang tính của sổ làm việc hiện tại.
Đọc thêm: Cách tự động lọc và sao chép hàng hiển thị bằng Excel VBA
Kết luận
Để kết thúc, bài viết này đã chỉ cho bạn 4 cách dễ dàng và nhanh chóng để kiểm tra xem AutoFilter có đang bật trong Excel với macro VBA . Tôi hy vọng bài viết này rất hữu ích cho bạn. Vui lòng đặt bất kỳ câu hỏi nào liên quan đến chủ đề này.
Các bài viết liên quan
- [Khắc phục]:Phương pháp Tự động Lọc của Lớp Phạm vi Không thành công (5 Giải pháp)
- Bộ lọc tự động VBA:Sắp xếp Nhỏ nhất đến Lớn nhất (3 Phương pháp)