Em đang tìm hiểu về Function rất mong AC cho em vài ví dụ Code đơn giản để em có thể hiểu, phân biệt về cách dùng của: Exit For, Exit Function (em vẫn hay nhầm cái này với End Funtion)
Em đang tìm hiểu về Function rất mong AC cho em vài ví dụ Code đơn giản để em có thể hiểu, phân biệt về cách dùng của: Exit For, Exit Function (em vẫn hay nhầm cái này với End Funtion)
Bình thường, VBA sẽ chạy tuần tự các lệnh trong Function, Sub rồi mới kết thúc (cái này tương ứng với End Function, End Sub). Tuy nhiên trong một số trường hợp, bạn cần chương trình dừng lại ngay khi gặp một kết quả phù hợp nào đó. Khi này bạn dùng đến những câu lệnh Exit.
Chẳng hạn: để tính n!, bạn theo quy tắc: n!=(n-1)! * n, nhưng phải có quy ước: 0!=1. Như vậy, bạn có thể xây dựng hàm này như sau:
PHP:
Function GT(n As Byte) As Long
If n < 2 Then GT = 1: Exit Function
GT = GT(n - 1) * n
End Function
Với cách làm trên, Function sẽ dừng lại khi gặp n<2. Như vậy, trong Excel, nếu ta gõ =GT(5) thì hàm này sẽ thực hiện câu lệnh GT = GT(n - 1) * n, còn nếu bạn nhập =GT(1) thì hàm sẽ trả về giá trị 1 và dừng lại, không thực hiện câu lệnh GT = GT(n - 1) * n.
Một ví dụ khác: Bạn đang muốn tìm bộ ba số nguyên liên tiếp là độ dài 3 cạnh của một tam giác vuông, bạn có thể sử dụng vòng lặp Do While - Loop, Do - Loop While hoặc Do - Loop Until. Tuy nhiên ở đây mình muốn minh họa nó bằng vòng For - Next để bạn hiểu về Exit For:
PHP:
Sub Test()
Dim i As Integer
For i = 1 To 1000
If i * i + (i + 1) * (i + 1) = (i + 2) * (i + 2) Then Exit For
Next
MsgBox i
End Sub
Khi chạy code, gặp cái này "For i = 1 To 1000", VBA ngầm hiểu sẽ chạy câu lệnh bên trong 1000 lần. Tuy nhiên khi chạy, nó lại thấy có bộ (3, 4, 5) thỏa mãn điều kiện nên vòng For sẽ dừng lại ngay tại đây (khi i = 3) mà không chạy tiếp nữa.
Em đang tìm hiểu về Function rất mong AC cho em vài ví dụ Code đơn giản để em có thể hiểu, phân biệt về cách dùng của: Exit For, Exit Function (em vẫn hay nhầm cái này với End Funtion)
Một cách đơn giản để hiểu là
- Exit For: Thoát khỏi vòng For, các lệnh tiếp theo thì làm tiếp
- Exit Function: Thoát khỏi nguyên cái Function, kết thúc vấn đề. (như Exit Sub vậy)
Sub vonglap
Dim i as integer
For i=1 to 10
If i=3 then exit for
Next i
Msgbox "Moi thoat vong lap thoi a"
End Sub