Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

วิธี VBA ตรวจสอบสถานะ AutoFilter ใน Excel อย่างรวดเร็ว

คุณสมบัติ AutoFilter ของ Excel มีประโยชน์แต่บางครั้งซ่อนอยู่หรือแสดงผิดปกติ การใช้ VBA เป็นวิธีที่มีประสิทธิภาพที่สุดในการตรวจสอบสถานะจริง บทความนี้จะแสดง 4 วิธีง่ายและรวดเร็ว ตรวจสอบว่า AutoFilter เปิดอยู่หรือไม่ ใน Excel ด้วย VBA macro

ดาวน์โหลดสมุดงานฝึกหัด

4 วิธีรวดเร็ว VBA ตรวจสอบ AutoFilter ใน Excel

1. VBA ตรวจสอบว่า AutoFilter เปิดหรือปิดในเวิร์กชีท

  1. กด Alt + F11 เปิด Visual Basic Editor
  2. Insert > Module
  3. วางโค้ด:
Sub AutoFilterCheck()
    If ActiveSheet.AutoFilterMode = True Then
        MsgBox "Auto Filter is turned on"
    Else
        MsgBox "Auto Filter is turned off"
    End If
End Sub
  1. กด F5 รันแมโคร - จะแสดง MsgBox แจ้งสถานะ

แม้ไม่เห็นลูกศรตัวกรอง VBA ก็บอกสถานะจริงได้แม่นยำ

อ่านเพิ่มเติม: Excel VBA: ลบ AutoFilter หากมีอยู่ (7 วิธี)

2. Debug โค้ด VBA นับจำนวน AutoFilter ทั้งหมดในชีท

นับจำนวน AutoFilter ที่เปิดอยู่ แสดงผลใน Immediate Window

  1. เปิด VBE แทรก Module
  2. วางโค้ด:
Sub CountAutoFilters()
    Dim iCount As Long
    If ActiveSheet.AutoFilterMode = True Then
        iCount = 1
        Debug.Print "AutoFilterMode Count: " & iCount
    End If
End Sub
  1. รันแมโคร - ดูผลใน Immediate Window (Ctrl+G)

อ่านเพิ่มเติม: VBA AutoFilter หลายเงื่อนไขในฟิลด์เดียวใน Excel (4 วิธี)

3. VBA ตรวจสอบว่าคอลัมน์เฉพาะถูกกรองหรือไม่

ตรวจสอบคอลัมน์เฉพาะ (เช่น คอลัมน์ B) ว่าถูก AutoFilter หรือไม่

  1. เปิด VBE แทรก Module
  2. วางโค้ด:
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
  1. รันแมโคร - แสดง MsgBox ผลลัพธ์

แม้เห็นลูกศรตัวกรอง VBA อาจบอกว่าไม่ได้กรอง (กรณีลูกศรแสดงแต่ไม่ได้กรองจริง)

อ่านเพิ่มเติม: วิธี Autofilter ค่าที่ไม่เท่ากับค่าที่กำหนดด้วย VBA ใน Excel

4. VBA Macro ตรวจสอบ AutoFilter ที่เปิดอยู่ในสมุดงาน

ตรวจสอบทุกชีทในสมุดงานว่ามี AutoFilter เปิดอยู่หรือไม่

  1. เปิด VBE แทรก Module
  2. วางโค้ด:
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
  1. รันแมโคร - จะแสดง MsgBox สำหรับแต่ละชีทที่มี AutoFilter เปิด

อ่านเพิ่มเติม: วิธี Autofilter และคัดลอกแถวที่มองเห็นได้ด้วย Excel VBA

สรุป

บทความนี้แสดง 4 วิธี VBA ตรวจสอบสถานะ AutoFilter ใน Excel: ตรวจสอบชีททั้งหมด, นับจำนวน, ตรวจสอบคอลัมน์เฉพาะ, ตรวจสอบทุกชีทในสมุดงาน ช่วยให้ทราบสถานะจริงแม้ UI แสดงผิดปกติ

บทความที่เกี่ยวข้อง