รหัส VBA เพื่อกรองข้อมูลใน Excel (8 ตัวอย่าง)

  • แบ่งปันสิ่งนี้
Hugh West

Excel เรียงลำดับ & คำสั่งตัวกรอง มีช่วงจำกัดในการ กรองข้อมูล แต่การใช้ VBA คุณสามารถ กรองข้อมูล ได้หลากหลายตามที่คุณต้องการ บทความนี้จะให้ตัวอย่างที่มีประโยชน์ 8 ตัวอย่างในการใช้โค้ด VBA เพื่อ กรองข้อมูล ใน excel โดยใช้โค้ด VBA พร้อมภาพประกอบที่สดใส

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

คุณสามารถดาวน์โหลดเทมเพลต Excel ฟรีได้จากที่นี่ และฝึกฝนด้วยตัวเอง

รหัส VBA เพื่อกรองข้อมูล.xlsm

8 ตัวอย่างการใช้โค้ด VBA เพื่อกรองข้อมูลใน Excel

เรามาทำความรู้จักกับชุดข้อมูลของเรากันก่อน ซึ่งแสดงถึงเพศ สถานะ และ อายุ .

1. ใช้โค้ด VBA เพื่อกรองข้อมูลตามเกณฑ์ข้อความใน Excel

ในตัวอย่างแรก เราจะใช้ VBA กับ ตัวกรอง เท่านั้น ชาย นักเรียนจากคอลัมน์ เพศ ของชุดข้อมูล

ขั้นตอน:

  • คลิกขวา บน ชื่อแผ่นงาน .
  • จากนั้น เลือก View Code จาก เมนูบริบท .

เร็วๆ นี้ หลังจากนั้น หน้าต่าง VBA จะเปิดขึ้น

  • พิมพ์ รหัส ต่อไปนี้ ใน it-
9943
  • หลังจากนั้น ให้ย่อ VBA

การแบ่งโค้ด

  • ที่นี่ ฉันได้สร้าง ย่อย ขั้นตอน Filter_Data_Text() .
  • จากนั้นใช้ คุณสมบัติ ช่วง เพื่อประกาศ ชื่อแผ่นงาน และ ช่วง
  • ถัดไป ฉันใช้ วิธีการกรองอัตโนมัติ เพื่อใช้ เกณฑ์ ที่ฉันเลือก โดยที่ ฟิลด์:=2 หมายถึง คอลัมน์ 2 และ เกณฑ์1:=”ชาย” ถึง กรอง ข้อมูลสำหรับ ชาย
  • หลังจากนั้น ถึง เปิด กล่องโต้ตอบ แมโคร คลิก ดังนี้: นักพัฒนาซอฟต์แวร์ > มาโคร

  • เลือก ชื่อ มาโคร ตามที่ระบุใน โค้ด .
  • สุดท้าย เพียง กด Run .

ตอนนี้ ดูว่าเรามีเฉพาะ ข้อมูลของนักเรียนชาย หลังจาก การกรอง .

อ่านเพิ่มเติม: Excel กรองข้อมูลตาม มูลค่าเซลล์ (6 วิธีที่มีประสิทธิภาพ)

2. ใช้รหัส VBA เพื่อกรองข้อมูลที่มีหลายเกณฑ์ในหนึ่งคอลัมน์

ที่นี่ เราจะ กรอง สำหรับหลายเกณฑ์ในหนึ่งคอลัมน์ จากคอลัมน์หมายเลขสามของชุดข้อมูล เราจะ กรอง สำหรับ บัณฑิต และ บัณฑิต นักศึกษา

ขั้นตอน:

  • ทำตามสองขั้นตอนแรก ของ ตัวอย่างแรก เพื่อเปิด หน้าต่าง VBA .
  • ต่อมา พิมพ์ โค้ด ต่อไปนี้ ในนั้น-
3697
  • จากนั้นย่อขนาด VBA
<0

รายละเอียดโค้ด

  • ที่นี่ ฉันได้สร้าง ขั้นตอนย่อย ขั้นตอน Filter_One_Column() .
  • จากนั้นใช้คุณสมบัติ ช่วง เพื่อประกาศ ชื่อแผ่นงาน และ ช่วง
  • ต่อไป ฉันใช้ theวิธีการกรองอัตโนมัติ เพื่อใช้ เกณฑ์ ที่ฉันเลือก โดยที่ ฟิลด์:=3 หมายถึง คอลัมน์ 3 ที่นี่ Criteria1:=”Graduate” และ Criteria2:=”Postgraduate” ถึง Filter Status ของนักเรียน
  • สุดท้าย ฉันใช้ Operator:=xlOr เพื่อใช้ หรือ เงื่อนไข ตัวกรอง สำหรับหลายเกณฑ์
  • ที่นี่ สักครู่ ทำตาม ขั้นตอนที่สาม จาก ตัวอย่างแรก เพื่อเปิดกล่องโต้ตอบ มาโคร กล่อง .
  • ต่อมา เลือก ชื่อ มาโคร ที่ระบุ และ กด Run

หลังจากนั้นไม่นาน คุณจะได้รับแถวที่กรองตามเกณฑ์หลายเกณฑ์เช่นภาพด้านล่าง

อ่านเพิ่มเติม: กรองหลายเกณฑ์ใน Excel (4 วิธีที่เหมาะสม)

3. ใช้รหัส VBA เพื่อกรองข้อมูลที่มีหลายเกณฑ์ในคอลัมน์ต่างๆ ใน ​​Excel

ตอนนี้เราจะ กรอง สำหรับหลายเกณฑ์- ชาย และ บัณฑิต นักเรียน

ขั้นตอน:

  • ทำตามสองขั้นตอนแรก ของ ตัวอย่างแรก เพื่อ เปิด VBA
  • ภายหลัง เขียน รหัส ต่อไปนี้ ในนั้น-
4647
  • หลังจาก ที่ ย่อขนาดหน้าต่าง VBA .

การแบ่งโค้ด

  • ที่นี่ ฉันได้สร้าง ย่อย โพรซีเดอร์ Filter_Different_Columns() .
  • จากนั้น ฉันใช้คำสั่ง ด้วย เพื่อใช้ หลายคอลัมน์ .
  • จากนั้นใช้ ช่วง คุณสมบัติเพื่อประกาศ ชื่อแผ่นงาน และ ช่วง
  • ตามลำดับของเรา ถัดไป ฉันใช้ วิธีการกรองอัตโนมัติ เพื่อใช้ เกณฑ์ ของ ตัวเลือกของฉันโดยที่ Field:=2 หมายถึง คอลัมน์ 2 และ Field:=3 หมายถึง คอลัมน์ 3 .
  • ที่นี่ เลือก Criteria1:=”Male” สำหรับคอลัมน์ Gender และ Criteria1:=”Graduate” สำหรับคอลัมน์ Status ไปยัง Filter ข้อมูลจาก คอลัมน์ต่างๆ .
  • จากนั้น ทำตามขั้นตอนที่สาม จาก ตัวอย่างแรก เพื่อเปิด กล่องโต้ตอบมาโคร .
  • หลังจากนั้น เลือก ชื่อ มาโครที่ระบุ และ กด Run .
  • <14

    นี่คือผลลัพธ์ของหลายเกณฑ์

    อ่านเพิ่มเติม: Excel VBA เพื่อกรองในคอลัมน์เดียวกันตามหลายเกณฑ์ (6 ตัวอย่าง)

    4. ใช้รหัส VBA เพื่อกรองรายการ 3 อันดับแรกใน Excel

    ในตัวอย่างนี้ เราจะกรอง นักเรียนสามอันดับแรก ตาม อายุ <3

    ขั้นตอน:

    • ทำตามสองขั้นตอนแรก ของ ตัวอย่างแรก เพื่อเปิดหน้าต่าง VBA .
    • จากนั้น พิมพ์ รหัส ต่อไปนี้ ในนั้น-
    6036
    • หลังจากนั้น ให้ย่อขนาด หน้าต่าง VBA .

    การแบ่งโค้ด

    • นี่ฉัน สร้างขั้นตอน ย่อย Filter_Top3_Items() .
    • จากนั้นใช้ Operator:=xlTop10Items ถึง ตัวกรอง สำหรับ สามอันดับแรก ข้อมูล .
    • ตอนนี้ ทำตามขั้นตอนที่สาม จาก ตัวอย่างแรก เพื่อเปิด กล่องโต้ตอบมาโคร กล่อง .
    • จากนั้น เลือกชื่อมาโคร ตามที่ระบุในโค้ด และ กด Run .
    • <14

      จากนั้นคุณจะได้ผลลัพธ์ดังภาพด้านล่าง-

      อ่านเพิ่มเติม: วิธีกรองตามค่าเซลล์โดยใช้ Excel VBA (4 วิธี)

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

      • วิธีคัดลอกและวางเมื่อ ใช้ตัวกรองใน Excel
      • วิธีกรองค่าที่ไม่ซ้ำใน Excel (8 วิธีง่ายๆ)
      • กรองหลายเกณฑ์ใน Excel ด้วย VBA (ทั้งสองอย่าง ประเภท AND และ OR)
      • วิธีใช้ตัวกรองข้อความใน Excel (5 ตัวอย่าง)
      • วิธีกรองตามวันที่ใน Excel (4 แบบด่วน วิธีการ)

      5. ใช้รหัส VBA เพื่อกรอง 50 เปอร์เซ็นต์สูงสุดใน Excel

      มาใช้รหัส VBA เพื่อกรอง ห้าสิบเปอร์เซ็นต์สูงสุด ของนักเรียน ตามอายุของพวกเขา .

      ขั้นตอน:

      • ขั้นแรก ทำตามสองขั้นตอนแรก ของ ตัวอย่างแรก เพื่อเปิด หน้าต่าง VBA .
      • หลังจากนั้น พิมพ์ รหัส ต่อไปนี้ ในนั้น-
      4237
      • ย่อขนาด หน้าต่าง VBA .

      การแบ่งโค้ด

      • ที่นี่ ฉันสร้างขั้นตอน ย่อย Filter_Top50_Percent() .
      • ต่อมา ใช้ Operator:=xlTop10Percent ถึง กรอง ห้าสิบเปอร์เซ็นต์สูงสุดจาก คอลัมน์-4 .
      • ในขณะนี้ ทำตามขั้นตอนที่สาม จาก ตัวอย่างแรก เพื่อเปิด กล่องโต้ตอบมาโคร
      • จากนั้น เลือก ระบุ ชื่อมาโคร และ กด Run

      มีนักเรียนทั้งหมด 7 คน ดังนั้นสำหรับ 50 เปอร์เซ็นต์ จึงแสดงนักเรียนประมาณ สามคน .

      อ่านเพิ่มเติม: วิธีใช้สูตรเปอร์เซ็นต์กำไรใน Excel (3 ตัวอย่าง)

      6 . ใช้รหัส VBA เพื่อกรองข้อมูลโดยใช้สัญลักษณ์แทน

      เราสามารถใช้ อักขระตัวแทน-* (ดอกจัน) ใน รหัส VBA เพื่อกรองข้อมูลใน Excel จาก คอลัมน์สถานะ เราจะกรองเฉพาะ ค่าที่มี 'โพสต์' .

      ขั้นตอน:

      • ทำตามสองขั้นตอนแรก ของ ตัวอย่างแรก เพื่อเปิด หน้าต่าง VBA .
      • จากนั้น เขียน รหัสต่อไปนี้ ในนั้น-
      8085
      • หลังจากนั้น ให้ย่อขนาด หน้าต่าง VBA .

      รายละเอียดโค้ด

      • ที่นี่ ฉันได้สร้าง ย่อย ขั้นตอน Filter_with_Wildcard() .
      • จากนั้นใช้ ช่วง ("B4") เพื่อตั้งค่าช่วง
      • ถัดไป , ใช้ กรองอัตโนมัติ ถึง กรอง ใน ฟิลด์:=3 หมายถึง คอลัมน์ 3
      • เกณฑ์1:=”*โพสต์ *” เพื่อ กรอง ค่าที่มี 'โพสต์'
      • ตอนนี้ ทำตามขั้นตอนที่สาม จาก ขั้นแรก ตัวอย่าง เพื่อเปิดกล่องโต้ตอบ มาโครกล่อง
      • เลือก ชื่อ มาโคร ที่ระบุ และ กด Run .

      จากนั้นคุณจะได้ผลลัพธ์ที่ต้องการ

      อ่านเพิ่มเติม: วิธีเพิ่มตัวกรองใน Excel (4 วิธี )

      7. ฝัง Excel VBA เพื่อคัดลอกข้อมูลที่กรองแล้วในชีตใหม่ใน Excel

      ดูว่ามีข้อมูลกรองในชุดข้อมูลของฉัน ตอนนี้ฉันจะคัดลอกลงในแผ่นงานใหม่โดยใช้ VBA โค้ดเหล่านี้จะทำงานไม่ถูกต้องในแผ่นงาน คุณจะต้องนำไปใช้ในโมดูล

      ขั้นตอน:

      • กด Alt+F11 เพื่อเปิด VBA

      • จากนั้นคลิก แทรก > โมดูล ถึง เปิดโมดูล .

      • ตอนนี้ เขียน รหัส ต่อไปนี้
      6881
      • จากนั้นย่อ VBA

      รายละเอียดโค้ด

      • ที่นี่ ฉันได้สร้าง ย่อย ขั้นตอน Copy_Filtered_Data_NewSheet()
      • หลังจากนั้น ประกาศสองตัวแปร- x Rng As Range และ xWS As Worksheet
      • จากนั้นใช้ an คำสั่ง IF เพื่อ กาเครื่องหมาย กรองแล้ว
      • ต่อมา ใช้ MsgBox เพื่อแสดงผลลัพธ์
      • จากนั้นใช้ เวิร์กชีต("คัดลอกข้อมูลที่กรองแล้ว")ตัวกรองอัตโนมัติ .Range เพื่อเลือกช่วง กรองแล้ว และใช้ เพิ่ม เพื่อเพิ่มแผ่นงานใหม่
      • สุดท้าย Copy Range("G4") จะคัดลอกข้อมูล กรองแล้ว ไปยัง แผ่นงานใหม่
      • หลังจากนั้น ทำตามขั้นตอนที่สาม จาก ตัวอย่างแรก เพื่อเปิดกล่องโต้ตอบ มาโคร
      • จากนั้น เลือก ชื่อ มาโคร ที่ระบุ 2> และ กด Run .

      ตอนนี้จะเห็นว่า Excel ได้เปิดแผ่นงานใหม่และคัดลอกแถวที่กรองแล้ว

      อ่านเพิ่มเติม: ทางลัดสำหรับตัวกรอง Excel (3 การใช้งานด่วนพร้อมตัวอย่าง)

      8. ใช้โค้ด VBA เพื่อกรองข้อมูลโดยใช้รายการแบบเลื่อนลง

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

      ขั้นตอน:

      • เลือก เซลล์ D14 .
      • จากนั้น คลิก ดังนี้: ข้อมูล > เครื่องมือข้อมูล > การตรวจสอบข้อมูล > การตรวจสอบความถูกต้องของข้อมูล

      หลังจากนั้นไม่นาน กล่องโต้ตอบ จะเปิดขึ้น

      เลือก รายการ จากเมนูแบบเลื่อนลง อนุญาต .

      จากนั้น คลิกที่ไอคอนเปิด จากช่อง แหล่งที่มา .

      ตอนนี้ เลือกช่วงเกณฑ์ และ กดปุ่ม Enter .

      • ในขณะนี้ เพียง กด ตกลง .

      ตอนนี้รายการ แบบเลื่อนลง ของเราพร้อมแล้ว

      • ตอนนี้ ทำตามสองขั้นตอนแรก ของ ตัวอย่างแรก เพื่อเปิด หน้าต่าง VBA .
      • จากนั้น เขียน โค้ด ต่อไปนี้ ในนั้น-
      6201
      • จากนั้น ย่อขนาด VBAหน้าต่าง .

      การแบ่งโค้ด

      • ที่นี่ ฉันสร้าง ขั้นตอน ส่วนย่อยส่วนตัว , แผ่นงาน_การเปลี่ยนแปลง (ByVal Target As Range)
      • จากนั้น ฉันเลือก แผ่นงาน จาก ทั่วไป และ เปลี่ยน จาก ประกาศ
      • จากนั้นตั้งค่า ที่อยู่ เพื่อให้ทราบตำแหน่ง
      • สุดท้ายภายในคำสั่ง IF ใช้วิธี ตัวกรองอัตโนมัติ กับ ฟิลด์ และ เกณฑ์
      • ตอนนี้ เพียง เลือกเกณฑ์จากรายการแบบเลื่อนลง และ ตัวกรองจะเปิดใช้งาน

      นี่คือผลลัพธ์ กรองแล้ว หลังจากเลือก ชาย จาก แบบเลื่อนลง .

      อ่านเพิ่มเติม: วิธีกรองตามรายการในชีตอื่นใน Excel (2 วิธี)

      ส่วนการปฏิบัติ

      คุณจะได้รับแบบฝึกหัดในไฟล์ Excel ที่ให้ไว้ด้านบนเพื่อฝึกฝนวิธีที่อธิบายไว้

      บทสรุป

      ฉันหวังว่าขั้นตอนที่อธิบายข้างต้นจะดีพอที่จะใช้โค้ด VBA เพื่อ กรอง ข้อมูลใน excel อย่าลังเลที่จะถามคำถามใด ๆ ในส่วนความคิดเห็นและโปรดให้ข้อเสนอแนะ

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง