Vừa qua, có một số thủ tục phải dùng đến WorksheetFunction để tính, tôi thường nghe các cao thủ của diễn đàn mình bảo rằng đối đế lắm mới dùng WorksheetFunction để tính toán trong VBA vì bản chất của nó chậm, hoặc vào môi trường VB khác nó sẽ không có WorksheetFunction.
Vậy các cao thủ vui lòng viết cho hàm Max, CounIf, SumIf hoặc các hàm tính toán có thể thay thế hàm trong Excel.
Xin trân trọng cám ơn.
Lúc trước tôi từng nói rằng:
Nên hạn chế dùng WorksheetFunction trừ những trường hợp bất khả kháng
Bạn sẽ suy nghĩ đến việc viết riêng các hàm như COUNT, SUM, COUNTIF, SUMIF nếu như bạn dự tính chương trình của bạn sẽ "vượt" ra khỏi phạm vi Excel (dùng cho các ứng dụng khác chẳng hạn)
Vậy, trong trường hợp bạn biết chắc rằng chương trình mình luôn chạy trên Excel thì không lý gì lại không dùng WorksheetFunction (nếu không có hàm nào khác trong VBA thay thế được)
Thật lòng mà nói, tôi không tin rằng với trình độ của chúng ta lại có thể viết được hàm thay thế "ngon lành" hơn những thứ do bác Bill viết. Lấy vị dụ từ code của
Ba Tê xem thử, liệu hàm
GPE_COUNTIF gì gì đó có làm được như COUNTIF trong việc đếm với các ký tự đại diện không?
Nói xin lỗi, kế cả với hàm SUM tưởng chừng đơn giản nhất tôi cũng không tài nào viết được cho giống với SUM của bác Bill
Hic... nói chung là pó tay mi tà
--------------------
Tóm lại quan điểm của tôi là:
- Hạn chế dùng WorksheetFunction
- Cũng đừng nên suy nghĩ theo hướng tự viét lấy các hàm thay thế nó
- Tùy từng bài toán cụ thể sẽ tìm ra hướng đi khác nhau miễn là "tránh" dùng WorksheetFunction
Vậy:
Bạn cần giải quyết vấn đề gì?