Vba: วิธีออกจาก sub เมื่อเกิดข้อผิดพลาด


คุณสามารถใช้คำสั่ง Exit Sub ใน VBA เพื่อออกจากกระบวนการย่อยเมื่อพบข้อผิดพลาด

นี่เป็นวิธีทั่วไปในการใช้คำสั่งนี้ในทางปฏิบัติ:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

มาโครเฉพาะนี้พยายามหารแต่ละค่าในช่วง A1:A10 ด้วยค่าที่สอดคล้องกันในช่วง B1:B10

หากมีข้อผิดพลาดเกิดขึ้น (เช่น เรากำลังพยายามหารด้วยศูนย์) คำสั่ง On Error GoTo จะบอก VBA ให้เข้าถึง ErrorMessage ซึ่งบอกให้สร้างกล่องข้อความแจ้งผู้ใช้ว่ามีข้อผิดพลาดเกิดขึ้น และยุติกระบวนการย่อยโดยใช้ Exist Sub . คำแถลง.

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: วิธีมีอยู่ย่อยในกรณีที่เกิดข้อผิดพลาดใน VBA

สมมติว่าเรามีรายการค่าต่อไปนี้ในคอลัมน์ A และ B:

ตอนนี้ สมมติว่าเราสร้างแมโครต่อไปนี้เพื่อแบ่งแต่ละค่าในคอลัมน์ A ด้วยค่าที่สอดคล้องกันในคอลัมน์ B และแสดงผลลัพธ์ในคอลัมน์ C:

 Sub DivideValues()

Dim i As Integer

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับข้อผิดพลาดต่อไปนี้:

เราได้รับข้อผิดพลาดนี้เนื่องจากในแถวที่สี่ของแผ่นงาน Excel เราพยายามหารด้วยศูนย์

ถ้าเราเพียงต้องการออกจากกระบวนการย่อยเมื่อเกิดข้อผิดพลาดนี้ เราสามารถใช้คำสั่ง Exit Sub ได้ดังต่อไปนี้:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

เมื่อเราเรียกใช้แมโครนี้ ขั้นตอนย่อยจะแก้ไขปัญหาการแบ่งที่เป็นไปได้ทั้งหมดก่อนที่จะพบข้อผิดพลาด จากนั้นกล่องข้อความจะปรากฏขึ้นเพื่อแจ้งให้เราทราบว่ามีข้อผิดพลาดเกิดขึ้น และ VBA ก็มีอยู่อยู่ในขั้นตอนย่อย:

VBA เกี่ยวกับข้อผิดพลาดเอาต์พุตภายใต้

หมายเหตุ : คุณสามารถค้นหาเอกสารประกอบทั้งหมดของคำสั่ง Exit ใน VBA ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

วิธีสร้างโฟลเดอร์โดยใช้ VBA
วิธีลบโฟลเดอร์โดยใช้ VBA
วิธีลบไฟล์โดยใช้ VBA

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *