Hỏi về lệnh refreshall

Liên hệ QC

buivankiet

Thành viên mới
Tham gia
30/5/08
Bài viết
38
Được thích
6
TÔI CÓ MỘT FILE EXCELL, SHEET1 IMPORT DATA TỪ NHIỀU FILE EXCEL KHÁC
MỖI LẦN MỞ FILE TÔI CHẠY CODE SAU :

SUB TEST ()
REFRESHALL ' update lại dữ liệu từ các file excel khác đã import trong sheet1
[_5].VALUE=[_3].VALUE ' copy giá trị range("_3") vào range("_5")
END SUB

Do dử liệu nhiệu, nên máy chạy chậm và trên màn hình tôi thấy khi lệnh refreshAll chưa thực hiện xong thì lệnh [_5].value=[_3].value đã thực hiện. Nên kết thúc code lệnh [_5].value=[_3].value bị lệnh refreshAll vô hiệu hóa.
Nếu chạy code lần 2 thì kết quả tốt hoặc chia thành 2 code chạy riêng lẻ thì tốt
sub test1()
refreshAll
end sub

sub test2 ()
[_5].VALUE=[_3].VALUE
end sub

Và trong nhiều trường hợp khác với lệnh refreshall tôi cũng gặp hiện tượng tương tự. Thí dụ code sau :
private sub workbook_open()
refreshAll ' update dữ liệu từ các file khác
form1.show ' mở form để lọc dự liệu theo các điều kiện
end sub
khi đó form chỉ lọc trên dữ liệu cũ chưa refresh, có nghĩa lệnh refreshAll chưa thực hiện xong thì lệnh form1.show đã thực hiện.

chạy code lần thứ hai thì kết quả tốt.

Nhờ các Bạn giải thích dùm hiện tượng này và cách khắc phục. Xin cho hỏi trong VBA có lệnh nào ( lệnh wait chẳng hạn ) để lệnh RefreshAll thực hiện xong thì thực hiện lệnh kế tiếp.
Cám ơn trước
 
Web KT

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

Back
Top Bottom