Trung Hiếu
Thành viên mới

- Tham gia
- 26/5/18
- Bài viết
- 7
- Được thích
- 1
Morning các bác, như tiêu đề thì em đang có 1 sub thực hiện lệnh refesh Pivot table A sau đó copy data trên Pivot table A ra báo cáo. Pivot Table A thì đang lấy nguồn từ 1 Table Query B cho nên trước khi refesh Pivot Table A thì em sẽ có lệnh refresh Table Query B trước.
Vấn đề phát sinh là VBA và power query có vẻ không hoạt động tuần tự với nhau. Khi Table query B vừa được chạy lệnh Refresh và đang load thì VBA tiếp tục lệnh Refresh Pivot table A.
--> Kết quả là data copy từ data pivot table A thường ko chính xác hoặc lỗi Sub vi table query B refresh xong cũng mất 5-10s. Mình đã thử dùng lệnh Application.Wait, tìm hiểu 1 số code Afterfresh, Refesh của Querytable Method & Properties nhưng chắc do trình gà nên chưa ra được cách xử lý.
--> Giải pháp mong muốn: Bác nào biết cách khắc phục trường hợp này mách em với. Ví dụ có code để check trạng thái Refesh của Table query B done thì mới tiếp tục lệnh Refesh Pivot table A.
Ví dụ:
Sub Export_RP()
Thisworkbook.Sheets("sheet1").Range("Table query B").ListObject.QueryTable.Refresh BackgroundQuery:=False
Thisworkbook.PivotTables("Pivot table A").PivotCache.Refresh
End sub
Vấn đề phát sinh là VBA và power query có vẻ không hoạt động tuần tự với nhau. Khi Table query B vừa được chạy lệnh Refresh và đang load thì VBA tiếp tục lệnh Refresh Pivot table A.
--> Kết quả là data copy từ data pivot table A thường ko chính xác hoặc lỗi Sub vi table query B refresh xong cũng mất 5-10s. Mình đã thử dùng lệnh Application.Wait, tìm hiểu 1 số code Afterfresh, Refesh của Querytable Method & Properties nhưng chắc do trình gà nên chưa ra được cách xử lý.
--> Giải pháp mong muốn: Bác nào biết cách khắc phục trường hợp này mách em với. Ví dụ có code để check trạng thái Refesh của Table query B done thì mới tiếp tục lệnh Refesh Pivot table A.
Ví dụ:
Sub Export_RP()
Thisworkbook.Sheets("sheet1").Range("Table query B").ListObject.QueryTable.Refresh BackgroundQuery:=False
Thisworkbook.PivotTables("Pivot table A").PivotCache.Refresh
End sub