วิธีกรองคอลัมน์โดยใช้ vba (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้เพื่อกรองตามคอลัมน์ใน Excel โดยใช้ VBA:

วิธีที่ 1: กรองตามค่าของคอลัมน์

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value
End Sub

มาโครนี้จะกรองช่วง A1:C11 เพื่อแสดงเฉพาะแถวที่มีคอลัมน์แรกเท่ากับค่าของเซลล์ F2

วิธีที่ 2: กรองตามค่าหลายคอลัมน์

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value, _
                                 Operator:=xlOr, Criteria2:=Range(" F3 ").Value
End Sub

มาโครนี้จะกรองช่วง A1:C11 เพื่อแสดงเฉพาะแถวที่มีคอลัมน์แรกเท่ากับค่าของเซลล์ F2 หรือ F3

วิธีที่ 3: ล้างตัวกรอง

 SubClearFilters ()
ActiveSheet.AutoFilterMode = False
End Sub

มาโครนี้จะล้างตัวกรองทั้งหมดจากแผ่นงานปัจจุบัน

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ

ตัวอย่างที่ 1: กรองตามค่าของคอลัมน์

สมมติว่าเรามีชุดข้อมูลที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ และเราต้องการกรองชุดข้อมูลให้มีเฉพาะแถวที่มีค่าในคอลัมน์ทีมเท่ากับ A:

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value
End Sub

เมื่อเราเรียกใช้มาโครนี้ ชุดข้อมูลจะถูกกรองโดยอัตโนมัติเพื่อให้มีเฉพาะแถวที่มีค่าในคอลัมน์ทีมเท่ากับ A:

คอลัมน์ตัวกรอง VBA ตามค่าของเซลล์

ตัวอย่างที่ 2: กรองตามค่าหลายคอลัมน์

สมมติว่าเราต้องการกรองชุดข้อมูลให้มีเฉพาะแถวที่มีค่าในคอลัมน์ทีมเท่ากับ A หรือ C:

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value, _
                                 Operator:=xlOr, Criteria2:=Range(" F3 ").Value
End Sub

เมื่อเราเรียกใช้มาโครนี้ ชุดข้อมูลจะถูกกรองโดยอัตโนมัติเพื่อแสดงเฉพาะแถวที่มีค่าในคอลัมน์ทีมเท่ากับ A หรือ C

คอลัมน์ตัวกรอง VBA ตามเกณฑ์หลายเกณฑ์

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับวิธี VBA AutoFilter ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีรีเฟรชตารางเดือย
VBA: วิธีกรองตารางเดือย
VBA: วิธีลบค่าที่ซ้ำกัน

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *