สารบัญ
หากคุณกำลังมองหาวิธีที่ง่ายที่สุดในการค้นหาการจับคู่แบบตรงทั้งหมดโดยใช้ 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 อย่างมีประสิทธิภาพ หวังว่าคุณจะพบว่ามีประโยชน์ หากคุณมีข้อเสนอแนะหรือคำถามใดๆ โปรดแบ่งปันกับเรา