หากคุณกำลังดิ้นรนเพื่อค้นหาสาเหตุที่เป็นไปได้และวิธีแก้ไขของข้อความแสดงข้อผิดพลาด วิธีการกรองอัตโนมัติของคลาสช่วงล้มเหลว บทความนี้เหมาะสำหรับคุณ มาดูบทความหลักกัน
ดาวน์โหลดสมุดงาน
5 การแก้ไขสำหรับวิธีการกรองอัตโนมัติของปัญหาคลาสช่วงล้มเหลว
ที่นี่เราจะแสดง 5 วิธีแก้ปัญหาที่เป็นไปได้โดยใช้ชุดข้อมูลต่อไปนี้เป็นช่วงที่เราจะใช้คุณลักษณะตัวกรองอัตโนมัติเพื่อกรองช่วงตามเกณฑ์
เราใช้ Microsoft Excel 365 เวอร์ชันที่นี่ คุณสามารถใช้เวอร์ชันอื่นได้ตามสะดวก
แก้ไข-1 :การแก้ไขหมายเลขฟิลด์เพื่อแก้ไขวิธีการกรองอัตโนมัติของปัญหาคลาสช่วงที่ล้มเหลว
ที่นี่ เราจะพยายามกรองช่วงต่อไปนี้ตามมูลค่าการขายที่มากกว่า 2500 ด้วยความช่วยเหลือของ VBA รหัส.
สำหรับการกรองช่วงเราใช้รหัสต่อไปนี้
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
ที่นี่ ฟิลด์: ใช้สำหรับระบุหมายเลขคอลัมน์ของช่วงที่เรากำหนดให้ 100 แต่มีไม่เกิน 3 คอลัมน์ในช่วงนี้
ดังนั้นหลังจากกด F5 เราได้รับข้อความแสดงข้อผิดพลาด วิธีการกรองอัตโนมัติของคลาสช่วงล้มเหลว .
➤ ในการแก้ปัญหานี้ ให้ใช้หมายเลขฟิลด์ที่ถูกต้องซึ่งสอดคล้องกับหมายเลขคอลัมน์ของช่วง (เรากำลังใช้ 3 เพราะเป็นหมายเลขประจำเครื่องของ การขาย ของช่วง)
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 :การใช้ช่วงที่ถูกต้องสำหรับการแก้ปัญหา AutoFilter Method ของ Range Class Failed Problem
เราจะพยายามใช้ตัวกรองในชุดข้อมูลต่อไปนี้ตาม การขาย คอลัมน์สำหรับค่าที่มากกว่า $2,500.00 .
เราได้ใช้รหัสต่อไปนี้เพื่อกรองช่วงของ ช่วง แผ่น.
Sub fixing_autofilter_issue_2()
Dim sht As Worksheet
Set sht = Worksheets("Range")
sht.Range("D3:D100").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
ในที่นี้ เราจะเห็นว่าเราใช้ช่วง D3:D100 และช่องหมายเลข 3 และค่าเหล่านี้จะไม่จับคู่กันเนื่องจากช่วงนี้มีเพียงคอลัมน์เดียว
ดังนั้นหลังจากกด F5 เราได้รับข้อความแสดงข้อผิดพลาดอีกครั้ง
➤ แก้ไขโค้ดให้ถูกต้องตามนี้
Sub fixing_autofilter_issue_2()
Dim sht As Worksheet
Set sht = Worksheets("Range")
sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
เราได้เปลี่ยนช่วงเป็น B3:D3 ตอนนี้
➤ กด F5 .
หลังจากนั้น คุณจะสามารถกรองช่วงของคุณตามเกณฑ์โดยไม่มีข้อความแสดงข้อผิดพลาด
แก้ไข-3 :วิธีการกรองอัตโนมัติของช่วงคลาสปัญหาล้มเหลวเนื่องจากตารางการกรอง
ที่นี่ เรามี ตาราง . ดังต่อไปนี้ โดยเราจะพยายามใช้ตัวเลือกตัวกรองด้วยความช่วยเหลือของโค้ดเพื่อกรองตารางนี้ตาม การขาย คอลัมน์
เพื่อจุดประสงค์นี้ เราใช้รหัสต่อไปนี้
Sub fixing_autofilter_issue_3()
Dim sht As Worksheet
Set sht = Worksheets("Table")
sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
ดูเหมือนว่าทุกอย่างโอเคในรหัสนี้ มาดูกันเลย
แต่หลังจากกด F5 เราได้รับข้อความแสดงข้อผิดพลาด
เพื่อแก้ไขปัญหานี้ เราต้องแปลงตารางนี้เป็นช่วง
➤ เลือกตารางแล้วไปที่ การออกแบบตาราง แท็บ>> เครื่องมือ กลุ่ม>> แปลงเป็นช่วง ตัวเลือก
จากนั้นกล่องข้อความจะปรากฏขึ้นเพื่อให้แน่ใจว่ามีการแปลง
➤ กด ใช่ ที่นี่.
หลังจากนั้นคุณจะได้ช่วงจากตารางที่สร้างขึ้น
➤ เอาล่ะ มาใส่โค้ดก่อนหน้ากันอีกครั้ง
Sub fixing_autofilter_issue_3()
Dim sht As Worksheet
Set sht = Worksheets("Table")
sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
➤ กด F5 .
อย่างที่คุณเห็น คราวนี้เป็น วิธีกรองอัตโนมัติ ทำงานอย่างถูกต้อง
Fix-4 :วิธีการกรองอัตโนมัติของช่วงคลาสปัญหาล้มเหลวเนื่องจากการกรองตารางสาระสำคัญ
ที่นี่ เรามี Pivot Table . ต่อไปนี้ โดยที่เรามีมูลค่าการขายในคอลัมน์ที่สอง โดยเราจะใช้วิธีการกรองอัตโนมัติ .
ดังนั้นเราจึงได้ใช้รหัสต่อไปนี้
Sub fixing_autofilter_issue_4()
Dim sht As Worksheet
Set sht = Worksheets("Pivot")
sht.Range("A3:B3").AutoFilter field:=2, Criteria1:=">=2500"
End Sub
ที่นี่ หมายเลขฟิลด์ 2 ใช้สำหรับคอลัมน์ที่สองของช่วง A3:B3 .
หลังจากกด F5 คุณจะได้รับข้อความแสดงข้อผิดพลาด วิธีการกรองอัตโนมัติของ Range Class Failed .
ในการแก้ปัญหานี้ คุณสามารถใช้ วิธีการกรองอัตโนมัติ ไปยังช่วงต้นทางของตาราง Pivot
อย่างที่คุณเห็น ช่วงต้นทางที่เรามีสำหรับตารางนี้อยู่ใน แหล่งที่มา แผ่นงานและที่นี่เราจะใช้รหัสของเรา
➤ ใช้รหัสต่อไปนี้สำหรับช่วงแหล่งที่มานี้
Sub fixing_autofilter_issue_4_1()
Dim sht As Worksheet
Set sht = Worksheets("Source")
sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
➤ กด F5 .
ในที่สุด คุณจะสามารถกรองช่วงตามเกณฑ์ที่กำหนดสำหรับ การขาย คอลัมน์
แก้ไข-5 :ปัญหาเนื่องจากการใช้ทั้งช่วงแทนส่วนหัว
ในส่วนนี้ เราจะพูดถึงปัญหาเล็กน้อยที่แทบไม่ทำให้เกิดข้อความแสดงข้อผิดพลาด วิธีการกรองอัตโนมัติของคลาสช่วงล้มเหลว . แต่คุณสามารถทราบถึงข้อเท็จจริงที่อาจเป็นต้นเหตุของข้อผิดพลาดนี้ได้
เช่นเดียวกับตัวอย่างก่อนหน้านี้ เราจะใช้ วิธีการกรองอัตโนมัติ ให้อยู่ในช่วงต่อไปนี้
เราใช้รหัสต่อไปนี้สำหรับการใช้ตัวกรอง
Sub fixing_autofilter_issue_5()
Dim sht As Worksheet
Set sht = Worksheets("Header")
sht.Range("B3:D11").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
ที่นี่เราใช้ช่วง B3:D11 สำหรับชุดข้อมูลทั้งหมดซึ่งไม่จำเป็น และบางครั้งอาจเป็นสาเหตุของข้อความแสดงข้อผิดพลาดนั้นสำหรับช่วงกว้างๆ
ดังนั้น เราสามารถเปลี่ยนรหัสนั้นเป็นรหัสต่อไปนี้ได้โดยใช้ส่วนหัวเป็นช่วงเท่านั้น
Sub fixing_autofilter_issue_5()
Dim sht As Worksheet
Set sht = Worksheets("Header")
sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500"
End Sub
หลังจากกด F5 คุณจะได้ผลลัพธ์ที่ต้องการโดยไม่พบปัญหาใดๆ
บทสรุป
ในบทความนี้ เราพยายามที่จะครอบคลุมการแก้ไขที่เป็นไปได้สำหรับ วิธีการกรองอัตโนมัติของ Range Class Failed ปัญหาใน Excel หวังว่าคุณจะพบว่ามีประโยชน์ หากคุณมีข้อเสนอแนะหรือคำถามใด ๆ โปรดแบ่งปันในส่วนความคิดเห็น
บทความที่เกี่ยวข้อง
- วิธีการกรองอัตโนมัติและคัดลอกแถวที่มองเห็นได้ด้วย Excel VBA
- ตัวกรองอัตโนมัติ VBA:เรียงลำดับจากน้อยไปหามาก (3 วิธี)
- วิธีการกรองค่าอัตโนมัติไม่เท่ากับค่าที่แน่นอนด้วย VBA ใน Excel
- Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)