@
HieuCD &
♫ђöล♥ßล†♥†µ♫
Hàm của các bạn là hàm tự tạo, gõ vào 1000 ô là nó chạy 1000 lần. Bạn có thấy là nếu cái Range cần dò nó không thay đổi thì bảng tính phải lập lại cái đít sần 1000 lần?
Cách cải tién là dùng 1 cái đít sần tĩnh static.
static dic as object
' hàm sử dụng nó đầu tiên thì phải khởi
if dic is nothing then set dic = createobject(...)
' đoạn code sau đây kiểm lại cái range dò xem có thay đổi hay không
if not dic.exists("curRange: " & Rng.Address) then
dic.RemoveAll ' xoá hết dữ liệu
... code nhét dữ liệu vào dic ở đây ...
dic.Add "curRange: " & Rng.Address, "" ' ghi lại để nó nhớ lần tới, không phải lặp lại
end if
' dic sẵn sàng để dò ở đây
...
Chú: nếu bạn không thoải mái với biến tĩnh thì dùng biến toàn cục cũng được.