Function và Sub trong VBA Excel

0
4

Sự khác biệt giữa hàm và phụ trong Excel VBA là hàm có thể trả về giá trị trong khi phụ không thể. Chức năng và subs trở nên rất hữu ích khi tăng kích thước chương trình.

Chức năng

Nếu bạn muốn Excel VBA thực hiện một tác vụ trả về kết quả, bạn có thể sử dụng hàm. Đặt một chức năng vào một mô-đun (Trong Trình soạn thảo Visual Basic, bấm Chèn, Mô-đun). Ví dụ, hàm có 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 đối số (kiểu Double) và kiểu trả về (phần sau As cũng thuộc kiểu Double). Bạn có thể sử dụng tên của hàm (Vùng) trong mã của mình để cho biết kết quả nào bạn muốn trả về (ở đây x * y).

Bây giờ bạn có thể tham khảo hàm này (nói cách khác gọi hàm) từ một nơi khác trong mã của bạn bằng cách sử dụng tên của hàm và đưa ra một giá trị cho mỗi đối số.

Đặt nút lệnh trên bảng tính của bạn và thêm các dòng mã sau:

Dim z Như gấp đôi

Dim z As Double
z = Area(3, 5) + 2
MsgBox z

Giải thích: Hàm trả về một giá trị để bạn phải ‘bắt’ giá trị này trong mã của mình. Bạn có thể sử dụng một biến khác (z) cho điều này. Tiếp theo, bạn có thể thêm một giá trị khác cho biến này (nếu bạn muốn). Cuối cùng, hiển thị giá trị bằng MsgBox.

Kết quả khi bạn nhấp vào nút lệnh trên trang tính:

Sub

Nếu bạn muốn Excel VBA thực hiện một số hành động, bạn có thể sử dụng một phụ. Đặt một phụ vào một mô-đun (Trong Trình soạn thảo Visual Basic, bấm Chèn, Mô-đun). Ví dụ, phụ có tên Khu vực.


Sub Area(x As Double , y As Double )
MsgBox x * y
End Sub

Giải thích: Phụ này có hai đối số (loại Double). Nó không có kiểu trả về! Bạn có thể tham khảo phụ này (gọi phụ) từ một nơi khác trong mã của bạn bằng cách sử dụng tên của phụ và đưa ra một giá trị cho mỗi đối số.

Đặt nút lệnh trên bảng tính của bạn và thêm dòng mã sau:Khu 3, 5

Kết quả khi bạn nhấp vào nút lệnh trên trang tính:

Bạn có thể thấy sự khác biệt giữa chức năng và phụ? Hàm trả về giá trị 15. Chúng tôi đã thêm giá trị 2 vào kết quả này và hiển thị kết quả cuối cùng. Khi chúng tôi gọi phụ, chúng tôi không còn quyền kiểm soát kết quả (15) vì phụ không thể trả về giá trị!

Xem thêm: Mảng trong VBA Excel

Tham khảo Khóa học VBA Excel tại Hà Nội

LEAVE A REPLY

Please enter your comment!
Please enter your name here