VBA Exit Sub hoặc Chức năng

Trong VBA, bạn có thể thoát khỏi một Sub hoặc Function, bằng cách sử dụng Thoát Sub hoặc Chức năng thoát các lệnh.

1 Thoát Sub
1 Chức năng thoát

Khi việc thực thi mã đến Thoát Sub hoặc Chức năng thoát, nó sẽ thoát khỏi Sub hoặc Function và tiếp tục với bất kỳ quá trình thực thi mã nào khác.

Nếu bạn muốn tìm hiểu cách thoát phụ khi bị lỗi, hãy nhấp vào liên kết này: VBA khi lỗi thoát phụ

Nếu bạn muốn tìm hiểu cách kết thúc toàn bộ quá trình thực thi mã, hãy nhấp vào liên kết này: VBA End

Thoát khỏi Sub trong VBA

Bạn sẽ thấy trên ví dụ điều gì sẽ xảy ra khi chúng tôi sử dụng Thoát Sub lệnh trong Sub. Chúng tôi đã tạo một Sub ExitSub, có Thoát Sub lệnh bên trong. SubCallExitSub gọi đây là Sub. Đây là mã:

123456789101112131415161718 Private Sub ExitSub ()Dim i As IntegerĐối với i = 1 đến 10Nếu tôi = 5 thìThoát SubMsgBox "Giá trị của tôi là" & iKết thúc nếuTiếp theo tôiKết thúc SubCuộc gọi phụ riêng tưExitSub ()Gọi ExitSubMsgBox "Thoát Sub"Kết thúc Sub

bên trong ExitSub, trước tiên chúng ta nhập Vòng lặp For nếu giá trị của i nhỏ hơn 10:

123 Đối với i = 1 đến 10Tiếp theo tôi

Sau đó, chúng ta kiểm tra xem giá trị của i có bằng 5 hay không bằng cách sử dụng lệnh If. Nếu giá trị là 5, chúng ta muốn thoát Sub và trả về hộp Message với giá trị là i:

1234 Nếu tôi = 5 thìThoát SubMsgBox "Giá trị của tôi là" & iKết thúc nếu

Nếu điều kiện không được đáp ứng, câu lệnh sau sẽ tăng i lên 1 và lại nhập vào vòng lặp For:

1 Tiếp theo tôi

bên trong CallExitSub, trước tiên chúng tôi gọi là Sub ExitSub:

1 Gọi ExitSub

Sau đó, chúng tôi trả lại hộp Thông báo:

1 MsgBox "Thoát Sub"

Nếu bạn chạy CallExitSub, trước tiên nó sẽ gọi ExitSub. Nếu bạn thực thi mã này trong chế độ gỡ lỗi, bạn sẽ thấy rằng nó sẽ đi qua vòng lặp 5 lần. Trong 5NS lặp lại, giá trị của biến i trở thành 5 và mã được nhập vào phần thân If. Bây giờ là Sub ExitSub được thoát ra và quay trở lại CallExitSub. Dòng tiếp theo là MsgBox “Thoát Sub”:

Như bạn có thể thấy, ExitSub được thoát ra ngay sau đó Thoát Sub lệnh, vì vậy MsgBox “Giá trị của tôi là” & i sẽ không bao giờ được thực thi.

Thoát một hàm trong VBA

Thoát một hàm trong VBA tương tự như thoát một Sub, chỉ là lệnh Chức năng thoát. Trong ví dụ, chúng tôi đã tạo ExitFunc trả về một số nguyên. Sub CallExitFunction gọi hàm này. Đây là mã:

1234567891011121314151617181920 Hàm riêng ExitFunc () As IntegerDim i As IntegerĐối với i = 1 đến 10Nếu tôi = 5 thìExitFunc = tôiChức năng thoátKết thúc nếuTiếp theo tôiChức năng kết thúcPrivate Sub CallExitFunction ()Dim intFunc As IntegerintFunc = ExitFunction ()MsgBox "Giá trị của intFunc là" & intFuncKết thúc Sub

bên trong ExitFunc, trước tiên chúng ta nhập Vòng lặp For nếu giá trị của i nhỏ hơn 10:

123 Đối với i = 1 đến 10Tiếp theo tôi

Sau đó, chúng ta kiểm tra xem giá trị của i có bằng 5 hay không bằng cách sử dụng lệnh If. Nếu giá trị là 5, chúng ta gán giá trị của i cho kết quả hàm và thoát khỏi hàm:

1234 Nếu tôi = 5 thìExitFunc = tôiChức năng thoátKết thúc nếu

Nếu điều kiện không được đáp ứng, câu lệnh sau sẽ tăng i lên 1 và lại nhập vào vòng lặp For:

1 Tiếp theo tôi

bên trong CallExitFunction, trước tiên chúng ta gọi hàm ExitFunc: Để làm điều đó, chúng ta phải khai báo biến intFunc nhập số nguyên và gán kết quả của ExitFunc chức năng của nó:

123 Dim intFunc As IntegerintFunc = ExitFunction ()

Sau đó, chúng tôi trả về hộp Thông báo với giá trị là intFunc:

1 MsgBox "Giá trị của intFunc là" & intFunc

Nếu bạn chạy CallExitFunction, trước tiên nó sẽ gọi hàm ExitFunc. Nếu bạn thực thi mã này trong chế độ gỡ lỗi, bạn sẽ thấy rằng nó sẽ đi qua vòng lặp 5 lần. Trong 5NS lặp lại, giá trị của biến i trở thành 5 và mã được nhập vào phần thân If. Bây giờ giá trị của ExitFunc trở thành i và hàm được thoát và trả về CallExitFunction. Dòng tiếp theo là MsgBox “Giá trị của intFunc là” & intFunc:

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave