Excel VBA เพื่อจับคู่ค่าในช่วง (3 ตัวอย่าง)

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

ขณะทำงานกับ Microsoft Excel บางครั้งเราต้องค้นหาค่าที่ตรงกันในช่วง เราสามารถทำได้อย่างง่ายดายด้วยฟังก์ชันของ excel มีฟังก์ชันใน VBA ที่เราอาจใช้ แต่ไม่มีฟังก์ชันใดเท่ากับ MATCH ในบทความนี้ เราจะเรียนรู้วิธีจับคู่ค่าในช่วงด้วย Excel VBA .

ดาวน์โหลดคู่มือแบบฝึกหัด

คุณสามารถดาวน์โหลด สมุดงานและฝึกฝนกับพวกเขา

VBA Match Value in Range.xlsm

Introduction to Excel VBA Match Function

ฟังก์ชัน การจับคู่ ใน Excel VBA เป็นฟังก์ชันการค้นหาที่เป็นประโยชน์ เช่น VLOOKUP , HLOOKUP และฟังก์ชัน INDEX ส่งคืนตำแหน่งของการจับคู่ค่าการค้นหาที่เหมือนกันหรือเทียบเคียงได้ในอาร์เรย์หรือฐานข้อมูล ฟังก์ชันนี้เป็นฟังก์ชันเวิร์กชีตที่โปรแกรมใช้ เนื่องจากเป็นฟังก์ชันเวิร์กชีต พารามิเตอร์สำหรับฟังก์ชัน Match จึงคล้ายกับพารามิเตอร์สำหรับฟังก์ชันเวิร์กชีต

3 ตัวอย่างของ Excel VBA เพื่อจับคู่ค่าในช่วง

1. จับคู่ค่าในช่วงด้วยฟังก์ชันการจับคู่ VBA ใน Excel

หากต้องการใช้ ฟังก์ชันการจับคู่ VBA ของ Excel เพื่อค้นหาค่าการจับคู่ในช่วง เราจะใช้ชุดข้อมูลต่อไปนี้ . ชุดข้อมูลมีชื่อนักเรียนบางคนในคอลัมน์ C เครื่องหมายของนักเรียนในคอลัมน์ D และหมายเลขประจำตัวของนักเรียนแต่ละคนในคอลัมน์ B ทีนี้สมมติว่าเราต้องการหาตำแหน่งที่ตรงกันในเซลล์ G5 ของเครื่องหมายที่ต้องการ และเครื่องหมายที่เราต้องการจับคู่นั้นอยู่ในเซลล์ F5

เรามาสาธิตขั้นตอนการ ค้นหาค่าที่ตรงกันในช่วงโดยใช้ฟังก์ชัน excel VBA Match .

ขั้นตอน:

  • ขั้นแรก ไปที่แท็บ นักพัฒนาซอฟต์แวร์ จากริบบิ้น
  • อย่างที่สอง คลิกที่ Visual Basic เพื่อเปิด Visual Basic Editor โดยที่ เราเขียนรหัส หรือ กด Alt + 11 เพื่อเปิด Visual Basic Editor

  • วิธีอื่นในการเปิด Visual Basic Editor เป็นเพียงการ คลิกขวา บนแผ่นงานและคลิกที่ ดูรหัส

<3

  • ซึ่งจะเป็นการเปิด Visual Basic Editor ตอนนี้ เขียนโค้ดที่นั่น

VBA Code:

6967
  • หลังจากนั้น หากต้องการเรียกใช้โค้ด ให้กดปุ่ม F5 คีย์บนแป้นพิมพ์หรือคลิกที่ปุ่ม ถูย่อย

  • สุดท้าย คุณจะเห็นว่าการจับคู่นั้น พบในตำแหน่ง 5 .

🔎 โค้ด VBA ทำงานอย่างไร

  • Sub example1_match() : หมายความว่าเรากำหนดขั้นตอนย่อยโดยตั้งชื่อมาโคร
  • Range("G5").Value : เราต้องการ ผลลัพธ์ที่จะเก็บไว้ในเซลล์ G5 .
  • WorksheetFunction : โดยใช้รหัสนี้ เราจะสามารถเข้าถึงฟังก์ชัน VBA ได้
  • Match(Range("F5").Value, Range("D5:D10"), 0) : ที่นี่ เราใช้ ฟังก์ชัน Match ใน VBA ตามที่เราต้องการนำค่าจากเซลล์ F5 และค้นหาตำแหน่งในช่วง D5:D10 .
  • End Sub : หมายความว่าสิ้นสุดขั้นตอน

อ่านเพิ่มเติม: Excel VBA เพื่อจับคู่สตริงในคอลัมน์ (5 ตัวอย่าง)

2. ใช้ Excel VBA เพื่อจับคู่ค่าจากเวิร์กชีตอื่น

เราสามารถค้นหาค่าที่ตรงกันในช่วงจากเวิร์กชีตอื่น โดยใช้ ฟังก์ชัน VBA Match ใน Excel สมมติว่า เรามีชุดข้อมูลในชีตชื่อ “ Data ” และเราต้องการผลลัพธ์ในชีตชื่อ “ Result ” และเรากำลังใช้ชุดข้อมูลเดียวกัน ทีนี้มาทำตามขั้นตอนกันเลย

STEPS:

  • ใน เริ่มต้น โดยใช้โทเค็นเดียวกันกับตัวอย่างก่อนหน้านี้ ไปที่แท็บ นักพัฒนาซอฟต์แวร์ บน Ribbon
  • จากนั้นคลิกที่ Visual Basic หรือกด Alt + F11 เพื่อเปิด Visual Basic Editor .
  • แทนการเปิด Visual Basic Editor เพียงคลิกขวาบนแผ่นงานแล้วเลือก ดูโค้ด .

  • ตอนนี้ จดโค้ด VBA

รหัส VBA:

9061
  • ถัดไป เรียกใช้รหัสโดยกดปุ่ม F5 หรือคลิกปุ่ม เรียกใช้ย่อย

  • และผลลัพธ์อยู่ในแผ่นงาน “ ผลลัพธ์

อ่านเพิ่มเติม: วิธีจับคู่ข้อมูลใน Excel จาก 2 แผ่นงาน

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

  • รวมผลการแข่งขันทั้งหมดด้วย VLOOKUP ใน Excel (3 ง่ายวิธี)
  • วิธีค้นหาการจับคู่ตัวพิมพ์เล็กและใหญ่ใน Excel ( 6 สูตร)
  • วิธีจับคู่ชื่อใน Excel โดยที่ตัวสะกดต่างกัน (8 วิธี )

3. Excel VBA วนซ้ำเพื่อรับค่าที่ตรงกันในช่วง

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

ขั้นตอน:

  • อันดับแรก จาก Ribbon ไปที่ นักพัฒนาซอฟต์แวร์ แท็บ
  • ประการที่สอง หากต้องการเปิด Visual Basic Editor ให้คลิกที่ Visual Basic หรือกด Alt + F11 .
  • หรือเพียงคลิกขวาบนแผ่นงานแล้วเลือก ดูโค้ด

  • จะเป็นการเปิด Visual Basic Editor .
  • ตอนนี้ พิมพ์รหัสที่นั่น

รหัส VBA:

8956
  • หลังจากนั้น การกดปุ่ม F5 หรือคลิกปุ่ม เรียกใช้ย่อย จะเป็นการเรียกใช้โค้ด

  • และคุณจะเห็นผลลัพธ์ในคอลัมน์ G

🔎 รหัส VBA ทำงานอย่างไร

  • For i = 5 To 8 : หมายความว่าเราต้องการให้ลูปทำงานโดยเริ่มจากแถว 5 และลงท้ายด้วยแถว 8 .
  • Cells(i, 7).Value : ซึ่งจะบันทึกค่าของตำแหน่งผลลัพธ์ในแต่ละแถวจาก 5 ถึง 8 แถวในคอลัมน์ G ซึ่งเป็นหมายเลขคอลัมน์ 7 .
  • Match(Cells(i, 6).Value, Range("D5:D10"), 0) : สามารถจับคู่เซลล์ได้โดยใช้ฟังก์ชัน จับคู่ (i, 6) ค้นหาค่าสำหรับแต่ละค่าการค้นหาที่พบในแถว 5 ถึง 8 ของคอลัมน์ 6th จากนั้นค้นหาในอาร์เรย์ D5:D10 บนแผ่นงาน Excel ที่มีข้อมูลอยู่

อ่านเพิ่มเติม: Excel ค้นหาค่าที่ตรงกันในสองคอลัมน์

สิ่งที่ควรทราบ

  • หากไม่มีประเภทการจับคู่หรือไม่ได้ระบุ จะถือว่าเป็น 1 .
  • หากตรวจไม่พบข้อมูลที่ตรงกัน ช่อง excel ที่เกี่ยวข้องจะว่างเปล่า
  • ค่าการค้นหาอาจเป็นตัวเลข อักขระ หรือข้อมูลตรรกะ หรือการอ้างอิงเซลล์ไปยังปริมาณ ข้อความ หรือนัยสำคัญทางตรรกะ

สรุป

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

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