Mấy cái Tuân nói đều đúng...trừ cái câu này:
6-VBA Xử lý toàn bộ tình huống:
Khi viết Sub/Function một số tình huống ta chưa đưa ra khi đó có thể Excel sẽ báo lỗi "Run-time". Theo cách thông thường người ta dùng bẫy lỗi "On Error ..." nhưng việc này sẽ làm cho tốc độ xử lý của EXCEL bị giảm, dùng "On Error ..." chỉ là giải pháp tùnh thế tạm thời, bạn nên phân tích mọi tình huống sảy ra, cuối cùng mới dùng "On error..."
Mấy cái On Error... thì ko làm code chạy chậm đến mức ko thể chấp nhận được. Ngôn ngữ lập trình nào cũng nên viết bẫy lỗi. Đó là nguyên tắc lập trình rồi. Ở chỗ tôi ko viết code theo chuẩn thì sẽ bị bắt viết lại (vì bắt buộc phải qua khâu Xem xét mã nguồn (Coding Review) mà)
bạn nên phân tích mọi tình huống xảy ra, cuối cùng mới dùng
Cái này thì lại đúng

(Cái đó người ta hay gọi là...vét cạn mọi tình huống xảy ra với từng dòng lệnh mình định viết.
If Application.ScreenUpdating=False then
Application.ScreenUpdating=False
End If
Đoạn này ko hiểu lắm

. Đùa thôi. Chắc vội quá Tuân viết nhầm
à, nhân tiện về cái lệnh kiểu If a = True Then hoặc If a = False Then
thì các bạn nên viết như thế này cho nó chuyên nghiệp (ko những chuyên nghiệp mà còn tăng tốc độ, đố các bạn chứng minh được tại sao đấy
If a Then '// tương đương với If a = True Then
If Not a Then '// tương đương với If a = False Then
Thông thường, 1 quá trình tính toán dài, tốn nhiều resource của PC thì hay làm đờ máy vì thực ra trong quá trình chạy đó có rất nhiều thứ đang thực hiện (như refresh (paint) cái màn hình chẳng hạn,...). Chính vì vậy mới có cái tip như Tuân nói.
Thông thường thì người ta hay làm như sau:
1. Dùng 1 lệnh nào đó có trong ngôn ngữ lập trình để "Lock" lại các controls (vì mỗi control thường là 1 window (trừ cái label,...) và các controls đó nó thường Paint liên tục. Trong trường hợp VBA thì Tuân dùng Application.ScreenUpdating=False, còn ở VB thì dùng API, ko nhớ lệnh nào nữa... nhưng search cái chắc ra ngay. Một số Grid như VS FlexGrid cũng có riêng cái method để ko paint grid.
2. Thực hiện 1 (vài) câu lệnh mà tốn nhiều resources như LoadDatatoGrid, to Treview, Listview,... Long time transactions,....
3. Paint lại các window (controls, active form) (trong VBA thì Application.ScreenUpdating=True)
Nếu thấy những điều tớ nói...lằng nhằng phức tạp quá thì bỏ qua nhé. Còn nếu vẫn muốn tìm hiểu thêm thì nên đọc về Windows Programming (có sách này đấy - hoặc vào MSDN mà search)