Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

เมื่อทำงานกับข้อมูลจำนวนมากและจำเป็นต้องตั้งค่าตัวกรองหลายตัวพร้อมกัน การกรองขั้นสูง ใน Excel มีประโยชน์ นอกจากนี้ยังอาจใช้เพื่อล้างข้อมูลของคุณโดยการลบสำเนา ขณะใช้ตัวกรองขั้นสูง , VBA รหัสนั้นง่ายต่อการดำเนินการ ในบทช่วยสอนนี้ เราจะแสดงวิธีใช้ตัวกรองขั้นสูง VBA สำหรับช่วงเกณฑ์หลายช่วงใน Excel .

5 วิธีที่มีประสิทธิภาพสำหรับตัวกรองขั้นสูง VBA ที่มีหลายเกณฑ์ในช่วงใน Excel

ในส่วนต่อไปนี้ เราจะพูดถึง 5 วิธีการใช้ VBA Advanced Filter สำหรับหลายเกณฑ์ ในตอนแรก คุณอาจต้องรู้ไวยากรณ์ของ VBA Advanced Filter .

 ไวยากรณ์ตัวกรองขั้นสูง VBA: 

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

  • ตัวกรองขั้นสูง: หมายถึงวัตถุช่วง คุณกำหนดช่วงที่ต้องการใช้ตัวกรองได้
  • การดำเนินการ: เป็นอาร์กิวเมนต์ที่จำเป็นซึ่งมีสองตัวเลือก xlFilterInPlace หรือ xlFilterCopy . xlFilterInPlace ใช้เพื่อกรองค่า ณ ตำแหน่งที่ชุดข้อมูลอยู่ xlFilterCopy ใช้เพื่อรับค่าตัวกรองในตำแหน่งอื่นที่ต้องการ
  • ช่วงเกณฑ์: แสดงถึงเกณฑ์ที่จะกรองค่า
  • CopyToRange: คือตำแหน่งที่คุณจะบันทึกผลการกรองของคุณ
  • เอกลักษณ์: เป็นอาร์กิวเมนต์ที่เป็นทางเลือก ใช้ จริง อาร์กิวเมนต์เพื่อกรองเฉพาะค่าที่ไม่ซ้ำ มิฉะนั้น โดยค่าเริ่มต้น จะถือว่า เท็จ .

ในภาพด้านล่าง มีชุดข้อมูลตัวอย่างเพื่อใช้ตัวกรองทั้งหมดที่เราต้องการดำเนินการ

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

1. ใช้ตัวกรองขั้นสูง VBA สำหรับเกณฑ์ OR ในช่วงใน Excel

ในวิธีแรก เราจะใช้ OR เกณฑ์โดยใช้ ตัวกรองขั้นสูง VBA . สมมติว่า เราต้องการกรองข้อมูลสำหรับชื่อผลิตภัณฑ์ คุกกี้ และ ช็อคโกแลต . เมื่อต้องการใช้ หรือ เกณฑ์ คุณควรวางค่าในแถวต่างๆ ทำตามขั้นตอนด้านล่างเพื่อทำงาน

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 1:

  • กด  Alt  F11 เพื่อเปิด มาโคร VBA .
  • คลิกที่ แทรก
  • เลือก โมดูล

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 2:

  • จากนั้นวาง VBA . ต่อไปนี้ รหัสเพื่อใช้ OR.
Sub Apply_VBA_Advanced_Filter_for_OR_Criteria()
'Declare Variable for dataset range and for criteria range
 Dim Dataset_Rng As Range
 Dim Criteria_Rng As Range
'Set the location and range of datase range and criteria range
 Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11")
 Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16")
'Apply Advanced Filter to filter the dataset using the criteria
 Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 3:

  • จากนั้นบันทึกโปรแกรมแล้วกด F5 ที่จะวิ่ง
  • ดังนั้น คุณจะได้ผลลัพธ์ที่กรองตามที่แสดงในภาพด้านล่าง

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

 หมายเหตุ เมื่อต้องการย้อนกลับกระบวนการหรือลบตัวกรองทั้งหมดและเรียกใช้ VBA โปรแกรม

Sub Remove_All_Filter()
 On Error Resume Next
'command to remove all the filter to show the previous dataset
 ActiveSheet.ShowAllData
End Sub

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

  • ด้วยเหตุนี้ คุณจะได้รับชุดข้อมูลเวอร์ชันก่อนหน้า

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

อ่านเพิ่มเติม:Excel VBA ตัวอย่างตัวกรองขั้นสูงพร้อมเกณฑ์ (6 เกณฑ์)

2. ดำเนินการตัวกรองขั้นสูง VBA สำหรับเกณฑ์ AND ในช่วงใน Excel

คล้ายกับวิธีการก่อนหน้านี้ ตอนนี้เราจะดำเนินการ VBA ตัวกรองขั้นสูงสำหรับ และ เกณฑ์. สมมติว่าเราต้องการทราบคุกกี้ที่มีราคา $0.65 ตามที่แสดงในภาพหน้าจอด้านล่าง สำหรับการใช้ OR เกณฑ์ คุณควรวางค่าในคอลัมน์ต่างๆ เมื่อต้องการใช้ และ ตามหลักเกณฑ์ด้านล่าง

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 1:

  • ในการเปิด มาโคร VBA , กด  Alt  F11 
  • หลังจากเปิด มาโคร VBA วาง VBA . ต่อไปนี้ รหัสในโมดูลใหม่
Sub Apply_VBA_Advanced_Filter_for_AND_Criteria()
'Declare Variable for dataset range and for criteria range
 Dim Dataset_Rng As Range
 Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
 Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11")
 Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15")
'Apply Advanced Filter to filter the dataset using the criteria
 Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 2:

  • กด F5 เพื่อเรียกใช้โปรแกรมหลังจากที่คุณได้บันทึกไว้แล้ว
  • สุดท้าย รับผลการกรอง

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

อ่านเพิ่มเติม: VBA เพื่อคัดลอกข้อมูลไปยังชีตอื่นด้วยตัวกรองขั้นสูงใน Excel

3. ใช้ตัวกรองขั้นสูง VBA สำหรับ OR ที่มี AND Criteria ในช่วงใน Excel

คุณยังสามารถใช้ หรือ และ และ เกณฑ์ทั้งสองอย่างรวมกัน ตัวอย่างเช่น คุณต้องการรับค่าสำหรับ คุกกี้ หรือ ช็อคโกแลต แต่สำหรับ คุกกี้ มีเกณฑ์อื่น ราคา $0.65 จะถูกนำไปใช้ ทำตามขั้นตอนด้านล่างเพื่อดำเนินการให้เสร็จสิ้น

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 1:

  • วาง VBA ต่อไปนี้ รหัสหลังจากเปิด มาโคร VBA .
Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria()
'Declare Variable for dataset range and for criteria range
 Dim Dataset_Rng As Range
 Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
 Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11")
 Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16")
'Apply Advanced Filter to filter the dataset using the criteria
 Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 2:

  • จากนั้นให้บันทึกโปรแกรมก่อนโดยกด F5 เพื่อเรียกใช้
  • ดังนั้น คุณจะพบค่าบางอย่างด้วย และ และ หรือ

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

อ่านเพิ่มเติม:ใช้ตัวกรองขั้นสูงตามเกณฑ์หลายเกณฑ์ในคอลัมน์เดียวใน Excel

การอ่านที่คล้ายกัน:

  • ตัวกรองขั้นสูงพร้อมหลายเกณฑ์ใน Excel (ตัวอย่างที่เหมาะสม 15 ตัวอย่าง)
  • Dynamic Advanced Filter Excel (VBA &Macro)
  • วิธีใช้ตัวกรองขั้นสูงใน VBA (หลักเกณฑ์ทีละขั้นตอน)
  • ตัวกรองขั้นสูงที่มีช่วงเกณฑ์ใน Excel (18 แอปพลิเคชัน)
  • ตัวกรองขั้นสูงของ Excel ไม่ทำงาน (2 เหตุผลและวิธีแก้ไข)

4. ใช้ตัวกรองขั้นสูง VBA สำหรับค่าที่ไม่ซ้ำกับหลายเกณฑ์ใน Excel

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

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 1:

  • ขั้นแรก เปิด VBA มาโครโดยกด  Alt  + F11.
  • วาง VBA ต่อไปนี้ รหัสในโมดูลใหม่
Sub Apply_VBA_Advanced_Filter_for_Unique_Values()
'Declare Variable for dataset range and for criteria range
 Dim Dataset_Rng As Range
 Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
 Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11")
 Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16")
'Apply Advanced Filter to filter the dataset using the criteria
 Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True
End Sub

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 2:

  • จากนั้น กด F5 เพื่อเรียกใช้โปรแกรมหลังจากบันทึก
  • ดังนั้น คุณจะได้รับค่าเฉพาะเฉพาะเท่านั้น

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

อ่านเพิ่มเติม:วิธีใช้ตัวกรองขั้นสูงสำหรับระเบียนที่ไม่ซ้ำเฉพาะใน Excel

5. ดำเนินการ VBA Advanced Filter สำหรับกรณีที่มีเงื่อนไข

นอกจากวิธีการก่อนหน้านี้ คุณยังสามารถใช้เงื่อนไขกับสูตรได้อีกด้วย ตัวอย่างเช่น เราต้องการหา ราคารวม ซึ่งมากกว่า $100 . ให้ทำตามขั้นตอนดังนี้

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 1:

  • ประการแรก เพื่อเปิด VBA Macro , กด  Alt + F11 .
  • เลือก โมดูล ใหม่ และวาง รหัส VBA . ต่อไปนี้ .
Sub Apply_VBA_Advanced_Filter_for_Formula()
'Declare Variable for dataset range and for criteria range
 Dim Dataset_Rng As Range
 Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
 Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11")
 Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15")
'Apply Advanced Filter to filter the dataset using the criteria
 Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng
End Sub

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

ขั้นตอนที่ 2:

  • ขั้นที่สอง บันทึกโปรแกรมแล้วกดปุ่ม F5 เพื่อดูผลลัพธ์

 หมายเหตุ นอกจากนี้ คุณสามารถรับผลลัพธ์ในพื้นที่ที่เหมาะสมไม่ว่าจะอยู่ในช่วงใหม่หรือในเวิร์กชีตใหม่โดยใช้ xlFilterCopy การกระทำ. เพียงวาง VBA รหัสและเรียกใช้เพื่อให้ได้ผลลัพธ์ใน Sheet6 อยู่ในช่วง B4:E11 .

'Declare Variable for dataset range and for criteria range
 Dim Dataset_Rng As Range
 Dim Criteria_Rng As Range
'Set the location and range of dataset range and criteria range
 Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11")
 Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15")
'Apply Advanced Filter to filter the dataset using the criteria
Dataset_Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11")
End Sub

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

  • ดังนั้น ดูผลลัพธ์สุดท้ายในเวิร์กชีตใหม่ 'Sheet6' .

Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)

อ่านเพิ่มเติม:วิธีใช้ตัวกรองขั้นสูงหากช่วงเกณฑ์มีข้อความใน Excel

บทสรุป

เพื่อสรุป ฉันหวังว่าคุณจะเข้าใจวิธีใช้ VBA ตัวกรองขั้นสูงใน Excel เพื่อกรองช่วงเกณฑ์หลายช่วง ควรใช้วิธีการทั้งหมดเหล่านี้ในการสอนและฝึกฝนกับข้อมูลของคุณ ดูหนังสือฝึกหัดและนำสิ่งที่คุณได้เรียนรู้ไปใช้ เนื่องจากการสนับสนุนที่สำคัญของคุณ เราจึงมีแรงบันดาลใจที่จะนำเสนอการสัมมนาในลักษณะนี้ต่อไป

หากคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะติดต่อเรา โปรดแจ้งให้เราทราบว่าคุณคิดอย่างไรในส่วนความคิดเห็นด้านล่าง

ความเป็นเลิศ เจ้าหน้าที่จะตอบคำถามของคุณโดยเร็วที่สุด

อยู่กับเราและเรียนรู้ต่อไป

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

  • ตัวกรองขั้นสูงของ Excel [หลายคอลัมน์และเกณฑ์ โดยใช้สูตรและสัญลักษณ์แทน]
  • วิธีใช้ตัวกรองขั้นสูงเพื่อยกเว้นเซลล์ว่างใน Excel (3 เคล็ดลับง่ายๆ)
  • Excel VBA:ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี)
  • วิธีการใช้ตัวกรองขั้นสูงเพื่อคัดลอกไปยังตำแหน่งอื่นใน Excel