Dùng khi: Bạn chỉ muốn thực hiện một hành động (hiển thị, ghi dữ liệu, định dạng, vẽ biểu đồ, xóa ô, v.v.) → Không cần trả về giá trị.
Đặc điểm: Không trả về giá trị. Dùng lệnh Call SubName hoặc SubName.
🔹 Ví dụ: Dùng Sub để hiển thị kết quả
Sub ChaoNguoiDung()
Dim ten As String
ten = InputBox("Nhập tên của bạn:")
MsgBox "Xin chào " & ten & "!"
End Sub
💬 Giải thích: Hàm này chỉ thực hiện hành động hiển thị lời chào, không trả lại giá trị để tính toán thêm.
👉 Vì vậy dùng Sub là phù hợp.
Dùng khi: Bạn cần tính toán và trả lại kết quả cho chương trình hoặc ô Excel. → Có giá trị trả về.
Đặc điểm: Gọi được trong Sub hoặc trực tiếp trong ô Excel. Phải gán kết quả cho tên hàm.
Có thể trả về bất kỳ kiểu dữ liệu nào: số, chuỗi, ngày, Boolean,...
Function TinhTong(a As Double, b As Double) As Double<br>
TinhTong = a + b
End Function
Sub GoiTinhTong()
Dim kq As Double
kq = TinhTong(10, 20)
MsgBox "Tổng là: " & kq
End Sub
Đặc điểm | Sub | Function |
---|---|---|
Có trả về giá trị? | Không — không trả về giá trị | Có — trả về giá trị |
Gọi trong ô Excel được không? | Không | Có — có thể gọi trực tiếp từ ô (ví dụ: =MyFunction(1,2) ) |
Thường dùng để làm gì? | Thực hiện hành động: hiển thị, ghi dữ liệu, định dạng, thao tác Sheet, v.v. | Tính toán và trả kết quả để dùng tiếp trong mã hoặc trong Excel |
Kết thúc bằng gì? | End Sub | End Function |
Tìm kiếm:
Trong lập trình VBA khi nào dùng Function hay Sub khi chúng ta tạo phần mềm.