ค้นหา 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 และส่งคืนเซลล์ทุกที่ที่พบ
สิ่งที่ต้องจำ
- สิ่งแรกอันดับแรกเราต้องเปิดใช้งานแท็บนักพัฒนาเพื่อใช้ VBA
- ค่าเฉพาะที่เราต้องหาคืออะไร?
- หากไม่พบค่าวัตถุของฟังก์ชันจะถูกตั้งค่าเป็นอะไร