Tạm thời vô hiệu chức năng Conditional formatting bằng VBA

Liên hệ QC
Tham gia
23/12/15
Bài viết
351
Được thích
271
Giới tính
Nam
Chào cả nhà. Trong quá trình viết code VBA liên quan đến bảng tính, để tăng tốc độ xử lí thì mình hay tắt Automatic calculation và Screen updating. Tuy nhiên còn một chức năng khác cũng làm chậm tốc độ xử lí là Conditional formatting, vậy nhờ mọi người cách để tạm thời vô hiệu chức năng này trước khi VBA chạy, sau khi VBA chạy xong thì lại bật lại. Cảm ơn mọi người.
 
Em vẫn không làm được, cám ơn bác đã dành thời gian nhưng làm theo bài #7 của bác ndu là đã ổn rồi. Chúc bác buổi chiều vui vẻ.
Nếu bạn làm theo bài #7 mà bạn thấy hài lòng, tức code chạy nhanh thì bây giờ so sánh thôi.

Viết 1 code khác
Mã:
Sub test2()
Dim t
    t = Timer
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
'    <cac viec can lam, rat nhieu, ton thoi gian>
    MsgBox "Tong thoi gian: " & Timer - t
End Sub
Lưu ý rằng Sub test1 cũng làm y hệt như Sub test2 các công việc gọi là <cac viec can lam, rat nhieu, ton thoi gian>. Và dòng đầu tiên và cuối cùng của test1 cũng là t = Timer và MsgBox "Tong thoi gian: " & Timer - t

Sau đó chạy test1 và test2 nhiều lần để so sánh thời gian thực hiện thôi. Nếu thời gian tương đương nhau thì có nghĩa là các công thức trong CF không được tính cho tới tận khi thực hiện xong sub.

Nếu không thử mà chỉ đoán mò thì tôi cho là các công thức của CF chỉ được tính khi sub của bạn đã thực hiện xong. Tức trong quá trình tính toán <cac viec can lam, rat nhieu, ton thoi gian> thì các công thức của CF không được thực hiện. Chỉ tới khi thực hiện xong sub thì trong quá trình làm mới sheet chúng mới được tính toán.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom