วิธีใช้ iferror ใน vba (พร้อมตัวอย่าง)
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อใช้ฟังก์ชัน IFERROR ใน VBA เพื่อแสดงค่าเฉพาะในเซลล์หากพบข้อผิดพลาดในสูตร Excel:
SubIfError ()
Dim i As Integer
For i = 2 To 11
Cells(i, 4).Value = WorksheetFunction.IfError(Cells(i, 3).Value, " Formula Error ")
Next i
End Sub
ตัวอย่างนี้จะตรวจสอบว่าแต่ละเซลล์ในแถวที่ 2 ถึง 11 ของคอลัมน์ที่สามของแผ่นงานปัจจุบันมีค่าความผิดพลาดหรือไม่
หากพบค่าความผิดพลาด ค่า “ข้อผิดพลาดของสูตร” จะถูกกำหนดให้กับเซลล์ที่เกี่ยวข้องในคอลัมน์ที่สี่ มิฉะนั้น ค่าตัวเลขในคอลัมน์ที่สามจะถูกกำหนดค่าให้กับค่าที่สอดคล้องกันในคอลัมน์ที่สี่
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีใช้ IFERROR ใน VBA
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่แสดงรายได้รวมและหน่วยที่ขายของผลิตภัณฑ์ในร้านค้าต่างๆ:

คอลัมน์ C ใช้สูตรเพื่อหารรายได้ตามหน่วยที่ขายเพื่อให้ได้รายได้ต่อหน่วย
อย่างไรก็ตาม โปรดทราบว่าสูตรจะสร้างค่า #DIV/0! ในบางเซลล์ที่เราพยายามหารด้วยศูนย์
สมมติว่าเราต้องการสร้างคอลัมน์ใหม่ที่แสดง “ข้อผิดพลาดของสูตร” สำหรับเซลล์เหล่านี้แทน
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubIfError ()
Dim i As Integer
For i = 2 To 11
Cells(i, 4).Value = WorksheetFunction.IfError(Cells(i, 3).Value, " Formula Error ")
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

ค่าในคอลัมน์ D จะแสดงผลลัพธ์ของสูตรในคอลัมน์ C หรือค่า “ข้อผิดพลาดของสูตร” หากแสดงค่าความผิดพลาด
อย่าลังเลที่จะเปลี่ยน “ข้อผิดพลาดของสูตร” ในวิธี IfError ในโค้ดเพื่อแสดงค่าที่คุณต้องการแทนเมื่อพบข้อผิดพลาด
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับวิธี VBA IfError ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีใช้ IF OR เพื่อทดสอบหลายเงื่อนไข
VBA: วิธีใช้ IF AND เพื่อทดสอบหลายเงื่อนไข
VBA: วิธีใช้ IF NOT เพื่อทดสอบว่าไม่ตรงตามเงื่อนไขหรือไม่