วิธีค้นหาการจับคู่แบบตรงทั้งหมดโดยใช้ VBA ใน Excel (5 วิธี)

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

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

ดาวน์โหลดสมุดงาน

VBA Find Exact Match.xlsm

5 วิธีค้นหาการจับคู่แบบตรงทั้งหมดโดยใช้ VBA

ฉันใช้ตารางต่อไปนี้ซึ่งมีบันทึกผลการเรียนของนักเรียนบางคน ฉันจะอธิบายวิธีต่างๆ ในการค้นหาข้อมูลที่ตรงกันโดยใช้ตารางนี้ด้วยความช่วยเหลือของ VBA

เพื่อจุดประสงค์นี้ ฉันใช้ Microsoft Excel 365 เวอร์ชัน คุณสามารถใช้เวอร์ชันอื่นๆ ได้ ตามความสะดวกของคุณ

วิธีที่ 1: การหาค่าที่ตรงกันทั้งหมดในช่วงของเซลล์

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

ที่นี่ ฉันจะหาค่าที่ตรงกันสำหรับ นักเรียนชื่อ “Joseph Micahel” .

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

➤ไปที่ ผู้พัฒนา แท็บ>> Visual Basic ตัวเลือก

จากนั้น Visual Basic Editor จะเปิดขึ้น

➤ไปที่ แทรก แท็บ>> โมดูล ตัวเลือก

หลังจากนั้น โมดูล จะถูกสร้างขึ้น<3

Step-02 :

➤เขียนโค้ดต่อไปนี้

3957

ที่นี่ "ตรงทั้งหมด" คือชื่อแผ่นงาน และ “B5:B10” คือช่วงของชื่อนักเรียน และ “Joseph Michael” คือชื่อของนักเรียนที่จะค้นหา

rng ประกาศเป็นวัตถุช่วง และ str เป็นตัวแปรสตริงเพื่อเก็บที่อยู่ของรายการที่ค้นหา

คำสั่ง IF จะกำหนดที่อยู่ของรายการให้กับตัวแปร str

➤กด F5

ผลลัพธ์ :

หลังจากนั้น คุณจะได้รับ ตาม กล่องข้อความ ที่มีตำแหน่งเซลล์ของนักเรียนชื่อ “Joseph Michael” .

อ่านเพิ่มเติม: ค้นหาภายในช่วงด้วย VBA ใน Excel: รวมถึงการจับคู่แบบตรงทั้งหมดและแบบบางส่วน

วิธีที่ 2: การค้นหาแบบตรงทั้งหมดและแทนที่โดยใช้ VBA

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

Step-01 :

➤ทำตาม ขั้นตอนที่ 01 ของ วิธีที่ 1

2937

ที่นี่ “find&replace” คือชื่อแผ่นงานและ “B5:B10” คือช่วงชื่อของนักเรียน และ “Donald Paul” คือชื่อของนักเรียนที่จะค้นหา จากนั้น “Henry Jackson” จะ เป็นชื่อนักเรียนแทนชื่อก่อนหน้า

ด้วย คำสั่งจะหลีกเลี่ยงการซ้ำซ้อนของโค้ดในทุกคำสั่ง

คำสั่ง IF คำสั่งจะกำหนดให้ที่อยู่ของรายการไปยังตัวแปร str และลูป DO จะแทนที่คำค้นหาที่เกิดขึ้นทั้งหมด

➤กด F5

ผลลัพธ์ :

หลังจากนั้น คุณจะได้ชื่อนักเรียนใหม่เป็น “Henry Jackson”

วิธีที่ 3: การค้นหาการจับคู่ที่ตรงทั้งหมดและตรงตามตัวพิมพ์เล็กและใหญ่

หากคุณต้องการค้นหาการจับคู่ที่ตรงตัวและตรงตามตัวพิมพ์เล็กและใหญ่ ให้ทำตามวิธีนี้ ในที่นี้ ผมมีชื่อเหมือนกัน 2 ชื่อ แต่มีความแตกต่างกันในแต่ละกรณี และแล้วแต่กรณี ผมจะแทนที่ด้วยชื่อนักศึกษาคนสุดท้าย

Step -01 :

➤ทำตาม ขั้นตอนที่ 01 ของ วิธีการที่ 1

2811

ที่นี่ "คำนึงถึงตัวพิมพ์เล็กและใหญ่" คือชื่อชีต และ “B5:B10” คือช่วงชื่อของนักเรียน และ “Donald Paul” คือชื่อของนักเรียนที่จะค้นหา และ จากนั้น “Henry Jackson” จะเป็นชื่อของนักเรียนแทนที่จะเป็นชื่อก่อนหน้า

ด้วย คำสั่งจะหลีกเลี่ยงการซ้ำซ้อนของรหัสในทุกคำสั่ง

คำสั่ง IF จะกำหนดที่อยู่ของรายการให้กับตัวแปร str และคำสั่ง DO จะแทนที่คำค้นหาที่เกิดขึ้นทั้งหมด<3

➤กด F5

ผลลัพธ์ :

ตามกรณี ชื่อของนักเรียนจะเปลี่ยนเป็น “Henry Jackson” .

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

  • วิธีค้นหาสตริงในเซลล์โดยใช้ VBA ใน Excel (2 วิธี)
  • VBAค้นหาในคอลัมน์ใน Excel (7 วิธี)
  • วิธีค้นหาสตริงด้วย VBA ใน Excel (8 ตัวอย่าง)

วิธีที่ 4: การใช้ ฟังก์ชัน InStr

สมมติว่าคุณต้องการจับคู่ ผ่าน หรือ ไม่ผ่าน กับชื่อของนักเรียน โดยขึ้นอยู่กับ คอลัมน์ผลลัพธ์ โดยที่ ผ่าน หรือ ไม่ผ่าน แล้ว หากต้องการค้นหาสตริงนี้ใน คอลัมน์ผลลัพธ์ และจด “ผ่าน” ในคอลัมน์ สถานะ สำหรับนักเรียนที่สอบผ่าน คุณสามารถใช้ ฟังก์ชัน InStr .

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

➤ติดตาม ขั้นตอนที่ 01 ของ เมธอด-1

3794

ที่นี่ ช่วงเซลล์คือ C5:C10 ซึ่งเป็น คอลัมน์ผลลัพธ์

InStr(ค่าเซลล์, “ผ่าน”) > 0 เป็นเงื่อนไขที่จำนวนมากกว่าศูนย์ (เมื่อเซลล์มี “ผ่าน” )  บรรทัดต่อไปนี้จะดำเนินการต่อและให้ผลลัพธ์ในเซลล์ที่อยู่ติดกันเป็น ผ่าน .

หากเงื่อนไขกลายเป็นเท็จ หมายความว่าเซลล์ไม่มี “ผ่าน” บรรทัดภายใต้ ELSE จะดำเนินการและให้ค่าเอาต์พุตใน เซลล์ที่อยู่ติดกันเป็น ว่าง .

การวนซ้ำนี้จะดำเนินต่อไปสำหรับแต่ละเซลล์

➤กด F5

ผลลัพธ์ :

จากนั้น คุณจะได้รับสถานะ "ผ่าน" สำหรับนักเรียนที่ผ่าน

วิธีที่ 5: ค้นหาการจับคู่แบบตรงทั้งหมดและแยกข้อมูล

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

ขั้นตอนที่-01 :<3

➤ทำตาม ขั้นตอนที่ 01 ของ วิธีที่ 1

8514

ที่นี่ ฉันใช้ B100 เป็น ใช้งานอยู่ Sheet Range (คุณสามารถใช้ช่วงใดก็ได้ตามการใช้งานของคุณ).

InStr(1, Range(“B” & i), “Michael James”) > 0 เป็นเงื่อนไขในการตรวจสอบว่าเซลล์ในคอลัมน์ B มี Michael James หรือไม่

Range(“E ” & icount & “:G” & icount) คือช่วงที่คุณต้องการข้อมูลเอาต์พุตและ Range(“B” & i & “:D” & i).value จะให้ค่าจากคอลัมน์ B ถึง D .

➤Press F5

ผลลัพธ์ :

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

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

สำหรับการฝึกฝนด้วยตัวเอง เราได้เตรียมส่วน แบบฝึกหัด ไว้ด้านล่างในแผ่นงานที่ชื่อว่า แบบฝึกหัด . โปรดทำด้วยตัวเอง

สรุป

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

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