วิธีใช้ฟังก์ชันค้นหาใน VBA (6 ตัวอย่าง)

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

หนึ่งในฟังก์ชันที่สำคัญและใช้กันอย่างแพร่หลายที่เราใช้ใน Visual Basic Application (VBA) คือฟังก์ชัน Find ในบทความนี้ ฉันจะแสดงให้คุณเห็นว่าคุณสามารถใช้ ฟังก์ชัน FIND ของ Excel พร้อมตัวอย่างและภาพประกอบที่เหมาะสมได้อย่างไร

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

ค้นหาฟังก์ชันใน VBA ใน Excel.xlsm

6 ตัวอย่างด่วนในการใช้ฟังก์ชัน FIND ใน VBA

เรามี ได้รับชุดข้อมูลที่มี ชื่อหนังสือ ผู้แต่ง และ ราคา ของหนังสือบางเล่มของร้านหนังสือชื่อ Martin Bookstore

วันนี้ วัตถุประสงค์ของเราคือเพื่อดูการใช้งานประเภทต่างๆ ของ ฟังก์ชันค้นหา ของ VBA จากชุดข้อมูลนี้

1. ใช้ฟังก์ชันค้นหาใน VBA โดยไม่มีพารามิเตอร์

คุณสามารถใช้ ฟังก์ชันค้นหา ของ VBA โดยไม่มีพารามิเตอร์

จากนั้น จะค้นหาค่าเฉพาะภายในช่วงของเซลล์และส่งคืนค่าที่ตรงกันแรกที่พบ

มาค้นหาชื่อกัน “P. B. Shelly” ในคอลัมน์ ผู้เขียน ( C4:C13 )

บรรทัดที่มี ฟังก์ชันค้นหา จะเป็น:

Set cell = Range("C4:C17").Find("P. B. Shelly")

โค้ด VBA ที่สมบูรณ์จะเป็น:

รหัส VBA:

2937

เอาต์พุต:

สร้าง มาโคร เรียกว่า ค้นหา หากคุณเรียกใช้มาโคร มันจะส่งคืน $C$6 ที่อยู่เซลล์แรกที่มีชื่อ P B. Shelly .

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

2. ใช้ฟังก์ชันค้นหาใน VBA กับพารามิเตอร์ After (เพื่อเริ่มการค้นหาจากเซลล์เฉพาะ)

คุณสามารถใช้พารามิเตอร์ หลังจาก กับฟังก์ชัน ค้นหา ใน VBA จากนั้นจะเริ่มค้นหาค่าจากด้านล่างเซลล์ภายในช่วง

ตัวอย่างเช่น เรามาเริ่มค้นหาชื่อ “P. B. Shelly” จากด้านล่างเซลล์ C6 .

บรรทัดของโค้ดจะเป็น:

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

และ โค้ด VBA ที่สมบูรณ์จะเป็น:

รหัส VBA:

2263

เอาต์พุต:

จะส่งคืน $C$13 เนื่องจากเริ่มค้นหาจากเซลล์ด้านล่าง C6 ซึ่งมาจากเซลล์ C7 จึงได้ P B. Shelly ในเซลล์ C13 ก่อน

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

3. เรียกใช้ฟังก์ชันการค้นหาใน VBA ด้วยการตัดรอบพารามิเตอร์ After (เพื่อค้นหาค่าในแบบวงกลม)

พารามิเตอร์ หลังจาก ด้วยฟังก์ชัน ค้นหา ค้นหาค่าในลักษณะวงกลม

นั่นคือ เริ่มค้นหาจากด้านล่างเซลล์ภายในช่วงหนึ่งๆ สิ้นสุดการค้นหาในช่วงนั้น แล้วจึงเริ่มอีกครั้งจากด้านบนสุดของช่วง

ตัวอย่างเช่น เรามาเริ่มค้นหาชื่อ “John Keats” จากเซลล์ด้านล่าง C8 โดยใช้พารามิเตอร์ หลังจาก

บรรทัดของ รหัสจะเป็น:

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

และกรอก รหัส VBA จะเป็น:

รหัส VBA:

4345

เอาต์พุต:

มันจะคืนค่า $C$7 เพราะมันเริ่มค้นหาจากเซลล์ด้านล่าง C8 ซึ่งมาจาก เซลล์ C9 .

ไม่พบเซลล์ C13 ดังนั้นจึงเริ่มอีกครั้งจากเซลล์ C4 และพบเซลล์หนึ่งในเซลล์ C7 .

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

  • วิธีค้นหาสตริงด้วย VBA ใน Excel (8 ตัวอย่าง)
  • ค้นหาข้อมูลที่ตรงกันโดยใช้ VBA ใน Excel (5 วิธี)
  • วิธีค้นหาและแทนที่โดยใช้ VBA (11 วิธี)

4. ใช้ฟังก์ชันค้นหาใน VBA ด้วยพารามิเตอร์ LookAt (สำหรับการจับคู่แบบตรงทั้งหมดหรือบางส่วน)

คุณสามารถใช้ ฟังก์ชันค้นหา ใน VBA ด้วย LookAt พารามิเตอร์

ใช้ LookAt = xlWhole สำหรับ ตรงทั้งหมด ตรงกัน และ LookAt=xlPart สำหรับ บางส่วน ตรงกัน

ตัวอย่างเช่น ลองค้นหาดูว่ามีหนังสือชื่อ “Ode” ในคอลัมน์ ชื่อหนังสือ หรือไม่ ( B4:B13 ).

ถ้าเราใช้ xlWhole ในบรรทัดของโค้ด:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

ผลลัพธ์จะแสดงข้อผิดพลาดเนื่องจากไม่พบการจับคู่ที่ตรงกัน ตรงทั้งหมด

แต่ถ้าคุณใช้:

<7 Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

จากนั้นจะส่งคืน $B$9 เพราะมีหนังสือชื่อ “Ode” อยู่ในเซลล์ B7 , Ode to the Nightingale.

ดังนั้นรหัสที่สมบูรณ์สำหรับการจับคู่ บางส่วน คือ:

รหัส VBA:

8184

5. ใช้งานฟังก์ชันค้นหาใน VBA ด้วยพารามิเตอร์ SearchDirection (เพื่อระบุทิศทางของการค้นหา)

คุณยังสามารถใช้ ฟังก์ชันค้นหา ใน VBA ด้วย พารามิเตอร์ SearchDirection

ใช้ SearchDirection = xlNext สำหรับการค้นหาจาก บนลงล่าง .

และ SearchDirection = xlPrevious สำหรับการค้นหาจาก Bottom to Top .

ตัวอย่างเช่น ลองค้นหา Author Elif Shafak ในคอลัมน์ Author ( C4:C13 ).

ถ้าเราใช้ xlNext ในบรรทัดของโค้ด:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

จากนั้นจะส่งคืน $C$5 .

แต่ถ้าคุณใช้:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

จากนั้นจะส่งคืน $C$11 .

ดังนั้นรหัสที่สมบูรณ์สำหรับการค้นหาจาก ล่างขึ้นบน คือ:

รหัส VBA:

6751

6. ค้นหาฟังก์ชันใน VBA ด้วยพารามิเตอร์ MatchCase (สำหรับการจับคู่ที่ตรงตามตัวพิมพ์ใหญ่หรือเล็ก)

สุดท้าย คุณสามารถใช้ฟังก์ชัน ค้นหา กับพารามิเตอร์ MatchCase

ใช้ MatchCase = True สำหรับ ตรงตามตัวพิมพ์เล็กและใหญ่ ตรงกัน , และ MatchCase=False สำหรับ ตรงตัวพิมพ์เล็กและใหญ่

ตัวอย่างเช่น ลองค้นหาหนังสือ “แม่” ในคอลัมน์ ชื่อหนังสือ ( B4:B13 ).

ถ้าเราใช้ True ในบรรทัดของโค้ด:

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

เอาต์พุตจะแสดงข้อผิดพลาดเนื่องจากจะ ' ไม่พบใด ๆตรงกัน

แต่ถ้าคุณใช้:

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

มันจะคืนค่า $ B$9 เนื่องจากมีหนังสือชื่อ “Mother” ในเซลล์ B8 .

ดังนั้นรหัสที่สมบูรณ์สำหรับ การจับคู่ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ คือ:

รหัส VBA:

7019

<4 สรุป

โดยใช้วิธีการเหล่านี้ คุณสามารถใช้ฟังก์ชันค้นหาในแอปพลิเคชัน Visual Basic คุณมีคำถามใดๆ? อย่าลังเลที่จะถามเรา

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