ฟังก์ชันค้นหา VBA | จะใช้ VBA Find Function ได้อย่างไร? (ตัวอย่าง)

ค้นหา Excel VBA

เมื่อเราใช้ Find ในแผ่นงานปกติเราจะกดแป้นพิมพ์ลัด CTRL + F และพิมพ์ข้อมูลที่เราต้องการค้นหาและหากไม่ต้องการค่าเราจะไปที่การแข่งขันครั้งต่อไปหากมีการจับคู่จำนวนมากมันเป็นงานที่น่าเบื่อ แต่เมื่อ เราใช้ FIND ใน VBA ซึ่งจะทำหน้าที่ให้เราและให้การจับคู่ที่ตรงกันและต้องใช้สามข้อโต้แย้งหนึ่งคือสิ่งที่จะหาสิ่งที่จะหาและที่ที่จะดู

ก่อนที่เราจะย้ายไปที่ VBA และเริ่มใช้ฟังก์ชันค้นหาในมาโครเราต้องเรียนรู้ก่อนว่าฟังก์ชันค้นหาใน excel คืออะไร ใน excel ปกติในแท็บหน้าแรกภายใต้กลุ่มการแก้ไขเราสามารถค้นหาฟังก์ชันค้นหาที่ใช้เพื่อค้นหาสตริงหรือค่าในช่วงเซลล์หรือทั้งแผ่นงาน

เมื่อเราคลิกที่นี่เราจะได้รับสองตัวเลือก

หนึ่งคือหาง่าย

เราจะเห็นว่ามันมีโหมดตัวเลือกที่เปิดคุณสมบัติอื่น

มันทำอัลกอริทึมการค้นหาที่มีข้อ จำกัด 4 ประการคือค้นหาอะไรภายในค้นหาและค้นหา

ตัวเลือกที่สองใน excel คือการค้นหาและแทนที่ซึ่งใช้เมื่อเราพบสตริง แต่จะแทนที่ด้วยค่าอื่นใด

ค้นหาไวยากรณ์ของฟังก์ชัน

เราได้เรียนรู้ข้างต้นว่า Find ใน excel พื้นฐานคืออะไร ใน VBA เราเขียนโค้ดด้วยตนเอง แต่คุณสมบัติจะเหมือนกับ excel ทั่วไป ขั้นแรกให้เราดูไวยากรณ์

Expression.Find (อะไรดูสิ….)

หากพบค่าที่เรากำลังมองหาด้วยฟังก์ชัน excel ระบบจะส่งกลับเซลล์ที่มีค่าอยู่และหากไม่พบค่าวัตถุของฟังก์ชันจะถูกตั้งค่าเป็นอะไร

นิพจน์ในมาโครคือช่วงที่กำหนดเช่นช่วง 1 หรือช่วง 2 คีย์เวิร์ดสำหรับสิ่งที่เราต้องการค้นหาค่าเฉพาะคืออะไร Lookin เป็นคีย์เวิร์ดสำหรับสิ่งที่เราพยายามค้นหาไม่ว่าจะเป็นความคิดเห็นหรือสูตรหรือสตริง ในทำนองเดียวกันมีข้อ จำกัด อื่น ๆ ในฟังก์ชันค้นหาซึ่งเป็นทางเลือก ฟิลด์บังคับเท่านั้นที่จำเป็นคือค่าที่เราพยายามค้นหา

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

พารามิเตอร์สำหรับฟังก์ชันค้นหาคือช่วงของเซลล์ เราต้องการหาค่าในช่วงใด อาจเป็นไม่กี่คอลัมน์หรือสองสามเซลล์หรือทั้งแผ่นงาน

ตัวอย่าง

คุณสามารถดาวน์โหลดเทมเพลต Excel ของ VBA FIND Function ได้ที่นี่ - เทมเพลต Excel ของ VBA FIND Function

ตัวอย่าง # 1

สมมติว่าข้อมูลของเรามีค่าดังต่อไปนี้

เราจะพยายามค้นหา“ Aran” ในข้อมูลเดียวกัน

  • ในการเขียนโค้ด VBA จำเป็นต้องเปิดใช้งานแท็บนักพัฒนาใน excel เพื่อให้สามารถเขียนรหัส VBA ได้

  • เราเริ่มเขียนโค้ดของเราโดยเขียนโค้ดต่อไปนี้ตามที่แสดงด้านล่าง
ตัวอย่างย่อย ()

Dim FindS เป็นสตริง

Dim Rng เป็นช่วง

FindS = InputBox (“ ป้อนค่าที่คุณต้องการค้นหา”)

ด้วยชีต (“ Sheet1”) ช่วง (“ A: A”)

  • ตัวอย่างคือชื่อฟังก์ชันที่กำหนดให้กับย่อย
  • ค้นหาคือสตริงที่เราต้องการให้ผู้ใช้ที่เราต้องการป้อนเพื่อค้นหา
  • Rng คือตัวแปรที่เราใช้สำหรับช่วง
  • ตอนนี้เราขอให้ผู้ใช้ป้อนค่าซึ่งดูเหมือนภาพหน้าจอด้านล่าง

  • ตอนนี้เราจะกำหนดฟังก์ชันค้นหาของเราในโมดูล

  • ฟังก์ชันค้นหาค่าที่ผู้ใช้ป้อนในช่วงที่กำหนด
  • ตอนนี้เราปิดฟังก์ชันโดยอาร์กิวเมนต์ต่อไปนี้

  • ตอนนี้ถ้าเราเรียกใช้รหัสของเราก่อนจะขอให้ผู้ใช้แจ้งค่า

  • เมื่อรหัสเสร็จสมบูรณ์ระบบจะส่งคืนเซลล์ไปยังตำแหน่งที่พบข้อมูล

ตัวอย่าง # 2

ในตัวอย่างข้างต้นมีชื่อที่ไม่ซ้ำกันสี่ชื่อ แต่ถ้ามีมากกว่าหนึ่งชื่อในข้อมูลเช่นพิจารณาข้อมูลด้านล่าง

เราจะเห็นว่าชื่อ Aran ซ้ำสองครั้งในข้อมูลข้างต้น ถ้า excel ต้องหาชื่อ Aran จะพบในเซลล์ A2 และหยุด แต่มีค่าอื่นที่คล้ายกับ A2 ในเซลล์ A6 จะดึงค่านั้นมาได้อย่างไร? นี่คือไวยากรณ์ของ Find (What, After) ในความช่วยเหลือ

หลังจากกำหนดเซลล์หลังจากการอ้างอิงที่เราต้องการค้นหาข้อมูล

ให้เราเขียนโค้ดสำหรับข้อมูลข้างต้น

  • อย่าลืมเปิดใช้งานแท็บนักพัฒนาจากตัวเลือกจากนั้นปรับแต่ง ribbon ใน excel เพื่อให้สามารถเขียนโค้ดใน VBA ได้
  • ใน VBA เราได้รับวัตถุ Microsoft excel ซึ่งเป็นโมดูลที่เราเขียนโค้ด

  • ก่อนหน้านี้เรากำลังทำงานกับแผ่นงาน 1 ตอนนี้เรากำลังทำงานในแผ่นงาน 2 ดังนั้นเลือกแผ่นงาน 2 สำหรับโมดูลอื่นและหน้าว่างจะปรากฏ

  • ตอนนี้เริ่มเขียนโค้ดโดยกำหนดฟังก์ชันก่อนเป็น SUB Sample2 () แล้วกด Enter

  • ตอนนี้เราได้กำหนดฟังก์ชันของเราแล้วเราจะเริ่มเข้าสู่ส่วนหลักซึ่งเป็นการกำหนดตัวแปรของเรา

  • กำหนดสิ่งที่ตัวแปร Find ควรมี

  • เลือกแผ่นงานที่เรากำลังดำเนินการซึ่งเป็นแผ่นงาน 2 ในตัวอย่างนี้

  • ตอนนี้เราจะพบข้อความที่ผู้ใช้ป้อนหลังจากเซลล์ A2 ดังนั้นเราจึงกำหนดฟังก์ชันค้นหาของเราดังต่อไปนี้

  • ตอนนี้เราปิดรหัสโดยการลงท้ายด้วยและถ้าเงื่อนไข

สิ่งที่โค้ดด้านบนทำคือค้นหาสตริงหลังเซลล์ A2 และส่งคืนเซลล์ทุกที่ที่พบ

สิ่งที่ต้องจำ

  1. สิ่งแรกอันดับแรกเราต้องเปิดใช้งานแท็บนักพัฒนาเพื่อใช้ VBA
  2. ค่าเฉพาะที่เราต้องหาคืออะไร?
  3. หากไม่พบค่าวัตถุของฟังก์ชันจะถูกตั้งค่าเป็นอะไร