Sub trong VBA hay còn gọi là thủ tục trong VBA là tương tự như function, tuy nhiên có một số khác biệt.
- Các thủ tục Sub KHÔNG không có giá trị trả về trong khi các function có thể hoặc không trả lại một giá trị.
- Các thủ tục Sub được gọi với từ khóa Call hoặc không.
Nội dung chính
Cú pháp của Sub trong VBA
Sub SubName([parameter-list]) statement 1 statement 2 statement 3 ....... statement n End Sub
Trong đó:
[parameter-list]: là danh sách tham số, có thể có không, một hoặc nhiều.
Ví dụ
Ví dụ sau hiển thị tích của hai số đã cho trong một hộp thoại thông báo.
Sub Area(x As Double, y As Double) MsgBox x * y End Sub
Gọi một Sub trong VBA
Bạn có thể gọi lại Sub trong một Functon khác hoặc trong một Sub khác.
Bạn có thể sử dụng hoặc không cần sử dụng từ khóa Call để gọi Sub.
Gọi Sub trong một Sub khác
Ví dụ:
Sub ClickButton() Call Area(10, 10) End Sub
Gọi Sub trong một Function khác
Ví dụ:
Function findArea(height As Double, Optional width As Double) If IsMissing(width) Then Call Area(height, height) Else Call Area(height, width) End If End Function
Gọi Sub trong Cell của Worksheet thông qua một function
Bây giờ bạn sẽ chỉ có thể gọi Sub trong Cell của Worksheet thông qua một function như thể hiện trong ảnh chụp màn hình sau đây:
Tích của hai số được tính và chỉ được hiển thị trong hộp thoại thông báo:
Kết quả hiển thị trong cell là 0, vì Sub trong VBA không có giá trị trả về: