Tải bản đầy đủ (.pdf) (3 trang)

Function và sub trong VBA excel

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (378.42 KB, 3 trang )

FUNCTION VÀ SUB TRONG VBA EXCEL
Sự khác biệt giữa một function và một sub trong Excel VBA là: một
function có thể trả về một giá trị, trong khi một Sub thì không, nó thực
hiện các công việc nào đó do người lập trình mong muốn bằng các đoạn
code. Function và sub rất hữu ích khi chương trình VBA bạn viết có kích
thước lớn, xử lý nhiều công việc.
File bài tập đính kèm (Bạn tải về cùng nhé)!
Function
Nếu bạn muốn Excel VBA thực hiện một nhiệm vụ mà trả về một giá trị, ta dùng
function. Đặt một function vào một module (Trong Visual Basic Editor, nhấn Insert,
Module). Ví dụ, chức năng với tên Area.
Function Area(x As Double, y As Double) As Double

Area = x * y

End Function
Giải thích: Hàm này có hai tham số (argument) kiểu Double và trả về giá trị kiểu
Double. Bạn có thể gọi hàm trong code của bạn để lấy kết quả trả về như mong muốn (ở
đây là x * y).
Bây giờ ta có thể tham khảo chức năng này (gọi hàm này) trong đoạn code của bạn
bằng cách sử dụng tên hàm và truyền giá trị cho các đối số.
Đặt command button vào worksheet của bạn và paste đoạn code bên dưới:
Dim z As Double

z = Area(3, 5) + 2

MsgBox z
Giải thích: Hàm Area trả về một giá trị, bạn có để dùng giá trị này trong code của
bạn. Ta dùng một biến khác (z) để làm điều đó: Lấy giá trị của hàm Area(3, 5) cộng thêm
2, và hiển thị giá trị của biểu thức (z) bằng MsgBox.
Kết quả khi click vào command button:



Sub
Nếu bạn muốn Excel VBA thực hiện một số hành động nào đó, bạn có thể sử dụng
Sub. Đặt một Sub vào một module (Trong Visual Basic Editor, nhấn Insert, Module). Ví
dụ Sub Area.
Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub
Giải thích: Sub này có hai đối số (kiểu Double ). Nó không trả về một giá trị cụ thể,
bạn có thể tham chiếu Sub này (gọi sub) từ các nơi khác trong code của bạn bằng cách sử
dụng tên của Sub và truyền vào giá trị cho các đối số.
Đặt command button vào worksheet của bạn và paste đoạn code bên dưới:
Area 3, 5
Kết quả khi click vào command button:

Bạn có thể thấy sự khác biệt giữa các function và Sub? Function trả về giá trị 15. Ta
có thể cộng thêm 2 cho kết quả này và hiển thị giá trị cuối cùng. Còn khi gọi sub chúng ta
không sử dụng kết quả (15) để xử lý được, bởi vì Sub không trả về một giá trị! Sub thực
hiện hành động mà người lập trình yêu cầu.

×