Hướng dẫn cách viết hàm tự tạo trong Excel bằng VBA

Khi sử dụng Excel, chúng ta thấy có rất nhiều hàm có sẵn trong đó. Bạn có bao giờ nghĩ rằng bạn cũng có thể tạo riêng cho mình 1 hàm theo ý muốn không? Hãy cùng Học Excel Online tìm hiểu cách viết hàm tự tạo trong Excel bằng VBA ngay nào.

Tìm hiểu về Function trong VBA

Khi viết code trong VBA chúng ta không chỉ viết được các Sub (thủ tục), mà chúng ta còn có thể viết được các Function (chức năng, hàm).

Các Function này có thể sử dụng trong môi trường VBA hoặc trong môi trường Excel. Cách sử dụng Function giống như việc sử dụng hàm trong Excel, do đó có thể gọi Function là các hàm tự tạo trong VBA.

Cú pháp của Function:

Function Tên( [tham số sử dụng] ) [As] [Kiểu giá trị trả về của Function]

Nội dung Function

End Function

Khi viết Function, bạn có thể viết 2 kiểu:

  • Không quy định rõ kiểu giá trị trả về của Function

Function Tên( [tham số sử dụng] )

Nội dung Function

End Function

  • Có quy định rõ kiểu trả về của Function

Function Tên( [tham số sử dụng] ) As [Kiểu giá trị trả về của Function]

Nội dung Function

End Function

Hàm bắt buộc phải có tham số sử dụng và Nội dung Function phải chỉ rõ hàm nhận kết quả như thế nào (có dòng Tên hàm = …. trong nội dung)

Để cho dễ hình dung, chúng ta hãy cùng xem một số ví dụ về Function như sau:

Tự tạo hàm tính diện tích hình chữ nhật khi biết chiều rộng và chiều dài

Chúng ta biết để tính diện tích của 1 hình chữ nhật, ta lấy chiều rộng * chiều dài.

Trong Excel, hàm thực hiện phép nhân là hàm Product. Chúng ta viết hàm như sau:

 

Thế nhưng bạn không muốn dùng hàm này, mà muốn gọi 1 hàm có tên là DienTich. Trong Excel không có sẵn hàm này, do đó bạn sẽ tự viết hàm đó trong VBA như sau:

Trong đó:

  • Tên Function là DienTich
  • Hàm gồm 2 tham số là ChieuRong và ChieuDai
  • Giá trị của hàm là kết quả của phép tính ChieuRong * ChieuDai

Khi đã viết xong Function, quay trở lại Excel chúng ta thấy khi viết từ khóa liên quan tới DienTich, Excel sẽ gợi ý cho bạn hàm này:

Gán giá trị vào các tham số của hàm:

Kết quả của hàm là:

Hàm tìm dòng cuối cùng có dữ liệu

Dòng cuối cùng có dữ liệu trong bảng dữ liệu rất hay được sử dụng trong lập trình VBA. Cú pháp thông thường là:

Thay vì việc mỗi lần cần sử dụng chúng ta lại phải viết lại toàn bộ cú pháp, chỉ thay đổi ở Tên Sheet và Số cột thì chúng ta có thể viết Function để cho nhanh hơn, dễ viết hơn:

Khi đó muốn xác định dòng cuối có dữ liệu trong Cột nào, Sheet nào, chúng ta chỉ việc gọi tên Sheet, Số cột trong Function Lastrow là được.

Ngoài ra các bạn có thể tham khảo thêm một số bài viết sau:

Cách tìm dòng cuối có chứa dữ liệu của một cột bằng hàm Match trong Excel

Tự viết hàm của mình nhờ VBA trong Excel

Chuyển công thức Excel sang hàm Vba sử dụng WorkSheetFunction


Tác giả: duongquan211287

· · ·

Khóa học mới xuất bản