Nhờ sửa code tìm kiếm nhiều điều kiện!

NinjaHits

Thành viên mới
Kính chào mọi người!
Em có tìm hiểu được một đoàn mã để tìm kiếm dữ liệu theo điều kiện nhưng khi dữ liệu tại cột điều kiện bị xoá hết thì code chạy bị load rất lâu và có khi bị lỗi. nhờ mọi người sửa giúp em với ạ.
em xin mô tả khái quát như sau ạ!
Hình 1 và 2 là 2 vùng chứa dữ liệu.
Bạn cần đăng nhập để thấy hình ảnh

Bạn cần đăng nhập để thấy hình ảnh

Hình 3 là cùng cần ghi dữ liệu dựa theo điều kiện tại cột H và N dữ liệu sẽ được ghi lần lượt vào cột S và T. dữ liệu này được lấy từ hình 1 và hình 2
Bạn cần đăng nhập để thấy hình ảnh

khi xoá dữ liệu ở 2 cột điều kiện sẽ dẫn đến tình trạng bị load lâu và lỗi.
mong được mọi người sửa chữa giúp hoặc có thể viết lại code giúp em ạ!
em xin cảm ơn!
Cập nhật: Sau khi thêm điều kiện if cho Size_ <> "" thì đã giải quyết được vấn đề nhưng vẫn mong muốn nhận được góp ý của mọi người để có thể tính toán nhanh hơn cho code!
 
Sửa lần cuối:

Ngày Mới

Thành viên tích cực
Thật sự rất khó chịu khi các bạn không kiểm tra kỹ mọi thứ trước khi gởi làm việc, toàn gởi link bị khoá truy cập.
 

NinjaHits

Thành viên mới
Thật sự rất khó chịu khi các bạn không kiểm tra kỹ mọi thứ trước khi gởi làm việc, toàn gởi link bị khoá truy cập.
Dạ thật sự xin lỗi ạ!
Em đã sửa lại link bài viết, mong mọi người thông cảm giúp em ạ!
 

Ngày Mới

Thành viên tích cực
Có nhất thiết dùng VBA không bạn, tôi dùng hàm được không?
Hàm tại ô S2
Mã:
=INDEX(MAHANG!$M$2:$Q$7,MATCH($H2,MAHANG!$A$2:$A$7,0),MATCH($N2,INDIRECT("MAHANG!$H$" & MATCH($H2,MAHANG!$A$2:$A$7,0) +1 &":L$" & MATCH($H2,MAHANG!$A$2:$A$7,0) + 1),0))
Hàm tại ô T2
Mã:
=INDEX(TON!$M$2:$Q$7,MATCH($H2,TON!$A$2:$A$7,0),MATCH($N2,INDIRECT("TON!$H$" & MATCH($H2,TON!$A$2:$A$7,0) +1 &":L$" & MATCH($H2,TON!$A$2:$A$7,0) + 1),0))
File của bạn
 

NinjaHits

Thành viên mới
Có nhất thiết dùng VBA không bạn, tôi dùng hàm được không?
Hàm tại ô S2
Mã:
=INDEX(MAHANG!$M$2:$Q$7,MATCH($H2,MAHANG!$A$2:$A$7,0),MATCH($N2,INDIRECT("MAHANG!$H$" & MATCH($H2,MAHANG!$A$2:$A$7,0) +1 &":L$" & MATCH($H2,MAHANG!$A$2:$A$7,0) + 1),0))
Hàm tại ô T2
Mã:
=INDEX(TON!$M$2:$Q$7,MATCH($H2,TON!$A$2:$A$7,0),MATCH($N2,INDIRECT("TON!$H$" & MATCH($H2,TON!$A$2:$A$7,0) +1 &":L$" & MATCH($H2,TON!$A$2:$A$7,0) + 1),0))
File của bạn
dạ hàm tất nhiên là được rồi ạ. trước khi em sử dụng vba thì em cũng đã sử dụng hàm cho bảng tính. nhưng dữ liệu table đang để là 20.000 row và như vậy việc tính toán dẫn đến bị chậm và lag. nếu như sử dụng cách dùng đến đâu copy đến đấy thì rất chi mất công và nhiều khi quên không kéo công thức. sau thi chuyển sang sử dụng VBA thì tốc độ tăng lên đáng kể.
 

Ngày Mới

Thành viên tích cực
Bạn nên thử tham khảo kiến thức về Mảng và kiến thức và Dic . Nắm được 2 kiến thức này tốc độ xử lý code của bạn sẽ nhanh lên đáng kể.
 
Top