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