Vba: ใช้ if and เพื่อทดสอบหลายเงื่อนไข
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้ใน VBA ด้วย IF และ AND เพื่อทดสอบว่าตรงตามเงื่อนไขหลายข้อหรือไม่:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
ตัวอย่างนี้จะตรวจสอบว่าค่าในเซลล์ A2 เท่ากับ “Warriors” หรือไม่ และค่าในเซลล์ B2 มากกว่า 100 หรือไม่
หากตรงตามเงื่อนไขทั้งสอง ค่า “ใช่!” » จะถูกส่งกลับในเซลล์ C2
มิฉะนั้นค่า “ไม่” จะถูกส่งกลับไปยังเซลล์ C2
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: ใช้ IF AND เพื่อทดสอบหลายเงื่อนไขใน VBA
สมมติว่าเรามีข้อมูลต่อไปนี้ใน Excel:
สมมติว่าเราต้องการตรวจสอบว่าชื่อทีมคือ Warriors และ ค่าคะแนนมากกว่า 100 และส่งคืนผลลัพธ์ในเซลล์ C2
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
แมโครส่งกลับค่า “ไม่ใช่” อย่างถูกต้อง ในเซลล์ C2 เนื่องจากไม่ตรงตามเงื่อนไขทั้งสอง
หากเราเปลี่ยนค่าของจุดในเซลล์ B2 แล้วเรียกใช้แมโครอีกครั้ง มันจะทดสอบว่าตรงตามเงื่อนไขทั้งสองสำหรับค่าใหม่หรือไม่:
ตัวอย่างเช่น สมมติว่าเราเปลี่ยนค่าจุดเป็น 104 และเรียกใช้แมโครอีกครั้ง:
แมโครส่งกลับค่า “ใช่!” อย่างถูกต้อง » ในเซลล์ C2 เนื่องจากตรงตามเงื่อนไขทั้งสอง
ถ้าคุณต้องการแสดงผลลัพธ์ในกล่องข้อความแทน คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
MsgBox “ Yes! ”
Else
MsgBox “ No. ”
End If
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
กล่องข้อความส่งคืน “ใช่!” » เนื่องจากชื่อทีมคือ Warriors และค่าแต้มมากกว่า 100
หมายเหตุ : ในตัวอย่างนี้ เราใช้ตัวดำเนินการ And เพียงครั้งเดียวในมาโครของเราเพื่อทดสอบว่าเงื่อนไขสองข้อเป็นจริงหรือไม่ แต่คุณสามารถใช้ตัวดำเนินการ And ได้มากเท่าที่คุณต้องการทดสอบว่าตรงตามเงื่อนไขมากกว่าสองข้อหรือไม่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีใช้ VLOOKUP
VBA: วิธีนับจำนวนอักขระในสตริง
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่