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

แก้ไขข้อผิดพลาด AutoFilter Method of Range Class Failed - 5 วิธีที่พิสูจน์แล้ว

หากเจอข้อความผิดพลาด AutoFilter method of Range Class Failed บทความนี้รวบรวม 5 สาเหตุและวิธีแก้ไขที่พิสูจน์แล้ว

ดาวน์โหลดไฟล์ฝึกหัด

5 วิธีแก้ปัญหา AutoFilter Method of Range Class Failed

ใช้ชุดข้อมูลตัวอย่างเป็นช่วงที่จะใช้ AutoFilter กรองตามเงื่อนไข

วิธีแก้ที่ 1: แก้ไขหมายเลข Field ให้ถูกต้อง

พยายามกรองช่วงข้อมูลตามค่ายอดขาย > 2500 ด้วย VBA แต่กำหนด field:=100 ผิด เพราะช่วงข้อมูลมีแค่ 3 คอลัมน์

โค้ดผิด:
Sub fixing_autofilter_issue_1()
    Dim sht As Worksheet
    Set sht = Worksheets("Field Number")
    sht.Range("B3:D3").AutoFilter field:=100, Criteria1:=">=2500"
End Sub

เกิดข้อผิดพลาด "AutoFilter method of Range Class Failed"

แก้ไข: เปลี่ยน field ให้ตรงกับลำดับคอลัมน์ในช่วง (field:=3 สำหรับคอลัมน์ Sales)
Sub fixing_autofilter_issue_1()
    Dim sht As Worksheet
    Set sht = Worksheets("Field Number")
    sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub

กด F5 - ทำงานได้ปกติ

อ่านเพิ่มเติม: Excel VBA ตรวจสอบว่า AutoFilter เปิดอยู่หรือไม่ (4 วิธี)

วิธีแก้ที่ 2: ใช้ช่วงข้อมูล (Range) ให้ถูกต้อง

พยายามกรองช่วง D3:D100 (คอลัมน์เดียว) แต่กำหนด field:=3 ผิดเพราะช่วงมีแค่ 1 คอลัมน์

โค้ดผิด:
Sub fixing_autofilter_issue_2()
    Dim sht As Worksheet
    Set sht = Worksheets("Range")
    sht.Range("D3:D100").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
แก้ไข: เปลี่ยนช่วงเป็น B3:D3 (หัวข้อทั้ง 3 คอลัมน์) field:=3 จึงถูกต้อง
Sub fixing_autofilter_issue_2()
    Dim sht As Worksheet
    Set sht = Worksheets("Range")
    sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub

วิธีแก้ที่ 3: ปัญหาจากการกรองตาราง (Table)

พยายาม AutoFilter ตาราง Excel โดยตรง จะเกิดข้อผิดพลาด

แก้ไข: แปลงตารางเป็นช่วงข้อมูลปกติ: เลือกตาราง > Table Design > Tools > Convert to Range > กด Yes แล้วรันโค้ดเดิมจะทำงานได้

วิธีแก้ที่ 4: ปัญหาจากการกรอง Pivot Table

ไม่สามารถ AutoFilter Pivot Table โดยตรงได้

แก้ไข: ใช้ AutoFilter กับ ช่วงข้อมูลต้นทาง (Source Data) ของ Pivot Table แทน

วิธีแก้ที่ 5: ใช้เฉพาะหัวข้อ (Header) แทนช่วงข้อมูลทั้งหมด

ใช้ช่วงข้อมูลทั้งหมด B3:D11 แทนที่จะใช้แค่หัวข้อ B3:D3 บางครั้งก่อให้เกิดข้อผิดพลาดกับช่วงใหญ่

แก้ไข: เปลี่ยนช่วงเป็นหัวข้อเพียงอย่างเดียว B3:D3
Sub fixing_autofilter_issue_5()
    Dim sht As Worksheet
    Set sht = Worksheets("Header")
    sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub

สรุป

บทความนี้ครอบคลุม 5 สาเหตุและวิธีแก้ปัญหา AutoFilter method of Range Class Failed ใน Excel: 1) Field number ผิด, 2) Range ไม่ตรงกับ Field, 3) กรอง Table โดยตรง, 4) กรอง Pivot Table โดยตรง, 5) ใช้ช่วงข้อมูลทั้งหมดแทนหัวข้อ หวังว่าจะเป็นประโยชน์

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