Computer >> Máy Tính >  >> Phần mềm >> Office

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

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.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

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 .

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

  • 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 .

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

  • 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.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

  • 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.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

Sau khi thực thi mã thành công, hãy xem hình ảnh sau để kiểm tra kết quả.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

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 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.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

  • 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.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

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 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.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

  • Sau đó, Chạy macro và nhìn vào hình ảnh sau để xem kết quả.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

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 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.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

  • Tiếp theo, Chạy macro. Bây giờ, hãy nhìn vào hình ảnh sau để biết kết quả.

Excel VBA để kiểm tra xem AutoFilter có được bật hay không (4 cách dễ dàng)

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 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)