Khi nào dùng Function hay Sub trong VBA

Trong lập trình VBA khi nào dùng Function hay Sub khi chúng ta tạo phần mềm.

  1. Khi nào dùng Sub?
  2. Khi nào dùng Function?
  3. Bảng so sánh Function và Sub VBA

1. Khi nào dùng Sub?

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.

2. Khi nào dùng Function?

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

3. Bảng so sánh Function và Sub VBA

Đặ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:

Bài viết liên quan:

Trong lập trình VBA khi nào dùng Function hay Sub khi chúng ta tạo phần mềm.