Trong bài viết này, blog.hocexcel.online sẽ hướng dẫn các bạn cách chuyển công thức Excel sang hàm VBA sử dụng WorkSheetFunction một cách đơn giản nhất.
Khi tạo công thức, bạn gặp các vấn đề sau:
Đây chính là lúc bạn thực hành dùng Vba đề viết hàm thay cho các công thức.
Excel cung cấp lớp WorkSheetFunction:
Xem thêm: Học vba ở đâu?
Cách khai thác lớp WorkSheetFunction, lấy hàm Match làm ví dụ:
Tìm thông tin về hàm Match:
+Ví dụ cách sử dụng hàm Match trong Vba.
Help của hàm Match.
Một số vấn đề ngoài lề:
Các hàm này trả lại kiểu Variant thì không sao, ngược lại nếu nguyên mẫu hàm trả lại kiểu cụ thể ( double chẳng hạn), nếu lỗi trong excel thì trả lại lỗi, còn trong vba nó sẽ tạo ra một lỗi, có thể gây dừng hàm. Do vậy nên chủ động bẫy lỗi, các hàm test lỗi của excel ( isna,…) cũng vô dụng trong trường hợp này.
Cho bài toán như trên, dò tìm hai chiều có tính trường hợp ngoại lệ. Ở đây ta đã có công thức nằm tại ô D6.
Phân tích công thức ta được:
Như trên hình ta thấy công thức trên phụ thuộc vào 4 đối số:
+ C6: Code.
+ $I$7:$L$10: BangDuLieu.
+ $H$7:$H$10: Row.
+ $I$6:$L$6: Col.
Bây giờ sẽ dùng Vba để định nghĩa công thức trên với tư cách một hàm, hàm “MyFunction”. Trong excel nhấn ALT+ F11, Insert->Module, một Module mới được tạo ra, mã nguồn vba sẽ được viết ở đây. Nhập code như hinh.
Trong excel ta gõ công thức: =MyFunction(C6,$I$7:$L$10,$I$6:$L$6,$H$7:$H$10)
MyFunction đã trở thành một hàm của Excel, với chức năng tính toán giống như công thức tại ô D6. So sánh kết quả ở hai cột D và côt E cho cùng một kết quả.
==> với WorksheetFunction, một chút sáng tạo, bạn có thể viết các hàm vba cho riêng mình, đơn giản mà mạnh mẽ.
Video minh họa.
VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook… giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp…
Tác giả: Nguyễn Ngọc Thu Hiền
Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này. Chi tiết xem tại: