วิธีใช้ ifna ใน vba (พร้อมตัวอย่าง)
คุณสามารถใช้เมธอด IfNa ใน VBA เพื่อส่งกลับค่าเฉพาะได้ ถ้าสูตรสร้างข้อผิดพลาด #N/A
นี่เป็นวิธีทั่วไปในการใช้ IfNa ในทางปฏิบัติ:
Sub UseVLOOKUP()
With Application
Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub
แมโครนี้โดยเฉพาะพยายามใช้ฟังก์ชัน VLOOKUP เพื่อค้นหาค่าในเซลล์ E2 ในช่วง A2:C11
หากไม่พบค่าในเซลล์ E2 สูตรจะให้ #N/A
อย่างไรก็ตาม เราสามารถใช้เมธอด IfNa เพื่อส่งคืน “No Value Found” แทน #N/A
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีใช้ IfNa ใน VBA
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
สมมติว่าเราต้องการค้นหาชุดข้อมูลสำหรับชื่อทีม “Kings” และส่งกลับค่าที่เกี่ยวข้องในคอลัมน์ช่วยเหลือ
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
Sub UseVLOOKUP()
With Application
Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
มาโครส่งกลับค่า 3 ช่วยเหลือสำหรับ Kings อย่างถูกต้อง
ตอนนี้ สมมติว่าเราเปลี่ยนชื่อทีมในเซลล์ E2 เป็น “Grizzlies” ซึ่งไม่มีอยู่ในชุดข้อมูล
เมื่อเราเรียกใช้แมโครนี้อีกครั้ง แมโครจะส่งกลับ “ไม่พบค่า” เนื่องจากเป็นค่าที่เราระบุซึ่งควรจะส่งคืนหากฟังก์ชัน VLOOKUP ส่งผลให้เกิดข้อผิดพลาด #N/A
มาโครส่งคืน “ไม่พบค่า” เนื่องจากไม่มี Grizzlies ในคอลัมน์ทีม
หมายเหตุ : คุณสามารถดูเอกสารฉบับสมบูรณ์ของวิธี VBA IfNa ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีใช้การจับคู่ดัชนี
VBA: วิธีจัดเรียงแผ่นงานตามหลายคอลัมน์
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่